33 lines
1.1 KiB
Docker
33 lines
1.1 KiB
Docker
FROM node:20-alpine AS deps
|
|
|
|
WORKDIR /workspace
|
|
|
|
COPY packages/external-provider-contract ./packages/external-provider-contract
|
|
COPY services/external-data-plane/package.json services/external-data-plane/package-lock.json ./services/external-data-plane/
|
|
|
|
WORKDIR /workspace/services/external-data-plane
|
|
RUN npm ci --omit=dev
|
|
|
|
FROM node:20-alpine AS runner
|
|
|
|
ENV NODE_ENV=production
|
|
ENV PORT=18106
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=deps /workspace/services/external-data-plane/package.json /workspace/services/external-data-plane/package-lock.json ./
|
|
COPY --from=deps /workspace/services/external-data-plane/node_modules ./node_modules
|
|
COPY --from=deps /workspace/packages/external-provider-contract /packages/external-provider-contract
|
|
COPY services/external-data-plane/src ./src
|
|
COPY services/external-data-plane/definitions ./definitions
|
|
|
|
# A dedicated numeric identity can read only the EDP provisioning secret mount;
|
|
# it is intentionally not the shared Node/Map Gateway uid/gid (1000).
|
|
RUN addgroup -S -g 11006 nodedc-edp && adduser -S -D -H -u 11006 -G nodedc-edp nodedc-edp
|
|
|
|
USER 11006:11006
|
|
|
|
EXPOSE 18106
|
|
|
|
CMD ["node", "src/server.mjs"]
|