11ARG PROJECT="@latitude-data/workers"
22ARG PROJECT_PATH="apps/workers"
3+ ARG NEXT_PUBLIC_DATADOG_APPLICATION_ID
4+ ARG NEXT_PUBLIC_DATADOG_CLIENT_TOKEN
5+ ARG NEXT_PUBLIC_DATADOG_SITE
6+ ARG DD_GIT_REPOSITORY_URL
7+ ARG DD_GIT_COMMIT_SHA
38
49FROM node:22-alpine AS alpine
510
@@ -49,17 +54,17 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install \
4954COPY --from=pruner /app/out/full/ .
5055
5156RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
52- --mount=type=secret,id=SENTRY_AUTH_TOKEN \
5357 BUILDING_CONTAINER=true \
54- SENTRY_AUTH_TOKEN="$(cat /run/secrets/SENTRY_AUTH_TOKEN 2>/dev/null || echo '')" \
5558 pnpm turbo build --filter="${PROJECT}..."
5659
57- # Run sentry:sourcemaps if SENTRY_AUTH_TOKEN secret is present and not empty
58- RUN --mount=type=secret,id=SENTRY_AUTH_TOKEN \
59- if [ -s /run/secrets/SENTRY_AUTH_TOKEN ]; then \
60- cd ${PROJECT_PATH} && \
61- SENTRY_AUTH_TOKEN="$(cat /run/secrets/SENTRY_AUTH_TOKEN)" pnpm sentry:sourcemaps; \
62- fi
60+ # Upload source maps to Datadog
61+ RUN if [ -n "$DD_GIT_COMMIT_SHA" ] && [ -n "$DD_GIT_REPOSITORY_URL" ] && [ -n "$NEXT_PUBLIC_DATADOG_APPLICATION_ID" ] && [ -n "$NEXT_PUBLIC_DATADOG_CLIENT_TOKEN" ]; then \
62+ echo "Uploading workers source maps to Datadog..." ; \
63+ cd apps/workers && \
64+ DD_API_KEY=$NEXT_PUBLIC_DATADOG_APPLICATION_ID DD_APP_KEY=$NEXT_PUBLIC_DATADOG_CLIENT_TOKEN pnpm datadog:sourcemaps; \
65+ else \
66+ echo "Skipping Datadog source map upload for workers - missing required environment variables" ; \
67+ fi
6368
6469# Since `pnpm prune` doesn't handle recursive dependencies effectively,
6570# we follow pnpm's recommended approach: remove node_modules entirely
@@ -71,11 +76,19 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install \
7176 --shamefully-hoist \
7277 --filter "${PROJECT}..."
7378
74- FROM alpine AS runner
79+ FROM node:22- alpine AS runner
7580
7681ARG PROJECT_PATH
82+ ARG DD_GIT_REPOSITORY_URL
83+ ARG DD_GIT_COMMIT_SHA
84+ ARG PORT=8080
7785
86+ ENV PORT=$PORT
7887ENV NODE_ENV=production
88+ ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL:-}
89+ ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA:-}
90+
91+ EXPOSE $PORT
7992
8093# Install AWS CLI using Alpine package manager
8194RUN apk add --no-cache \
@@ -95,19 +108,11 @@ USER latitude
95108
96109WORKDIR /app
97110
98- COPY --from=builder --chown=nodejs: latitude /app/node_modules ./node_modules
99- COPY --from=builder --chown=nodejs: latitude /app/${PROJECT_PATH} ./${PROJECT_PATH}
100- COPY --from=builder --chown=nodejs: latitude /app/packages/telemetry/typescript ./packages/telemetry/typescript
101- COPY --from=builder --chown=nodejs: latitude /app/packages/core/src/assets/eu-central-1-bundle.pem ./packages/core/src/assets/eu-central-1-bundle.pem
111+ COPY --from=builder --chown=latitude:nodejs /app/node_modules ./node_modules
112+ COPY --from=builder --chown=latitude:nodejs /app/${PROJECT_PATH} ./${PROJECT_PATH}
113+ COPY --from=builder --chown=latitude:nodejs /app/packages/telemetry/typescript ./packages/telemetry/typescript
114+ COPY --from=builder --chown=latitude:nodejs /app/packages/core/src/assets/eu-central-1-bundle.pem ./packages/core/src/assets/eu-central-1-bundle.pem
102115
103116WORKDIR /app/${PROJECT_PATH}
104117
105- ARG PORT=8080
106-
107- ENV PORT=$PORT
108- ENV NODE_ENV=production
109-
110- EXPOSE $PORT
111-
112118CMD ["node" , "dist/server.js" ]
113-
0 commit comments