e536d35b17
## Summary - **Fix Docker publish automation**: The `v.docker.*` tags pushed by the release workflow using `GITHUB_TOKEN` don't trigger the publish workflow (GitHub Actions limitation to prevent infinite loops). Added a `workflow_call` to `publish.yml` directly from the release job so Docker images are built automatically after npm publish. Tags are still pushed for reference. - **Fix worker Containerfiles**: The coordinator, docker-provider, and kubernetes-provider builds have been failing since the superjson vendoring change in `@trigger.dev/core` (#2949). The Containerfiles now run `bundle-vendor` before `build:bundle` to generate the vendor files that esbuild needs. ### Context - Docker images on GHCR have been stuck at v4.3.0 — v4.3.1, v4.3.2, v4.3.3 tags existed on GitHub but never triggered publish runs - The worker builds (publish-worker) have been failing on every push to main since Jan 30 ## Test plan - [x] Verified kubernetes-provider Containerfile builds locally with the fix - [x] Manually dispatched publish workflow for v4.3.1 — all jobs succeeded <!-- devin-review-badge-begin --> --- <a href="https://app.devin.ai/review/triggerdotdev/trigger.dev/pull/3013" target="_blank"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1"> <img src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1" alt="Open with Devin"> </picture> </a> <!-- devin-review-badge-end -->
48 lines
1.5 KiB
Docker
48 lines
1.5 KiB
Docker
FROM node:20-alpine@sha256:7a91aa397f2e2dfbfcdad2e2d72599f374e0b0172be1d86eeb73f1d33f36a4b2 AS node-20-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
FROM node-20-alpine AS pruner
|
|
|
|
COPY --chown=node:node . .
|
|
RUN npx -q turbo@1.10.9 prune --scope=kubernetes-provider --docker
|
|
RUN find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
|
|
|
|
FROM node-20-alpine AS base
|
|
|
|
RUN apk add --no-cache dumb-init
|
|
|
|
COPY --chown=node:node .gitignore .gitignore
|
|
COPY --from=pruner --chown=node:node /app/out/json/ .
|
|
COPY --from=pruner --chown=node:node /app/out/pnpm-lock.yaml ./pnpm-lock.yaml
|
|
COPY --from=pruner --chown=node:node /app/out/pnpm-workspace.yaml ./pnpm-workspace.yaml
|
|
|
|
FROM base AS dev-deps
|
|
RUN corepack enable
|
|
ENV NODE_ENV development
|
|
|
|
RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm fetch --no-frozen-lockfile
|
|
RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm install --ignore-scripts --no-frozen-lockfile
|
|
|
|
FROM base AS builder
|
|
RUN corepack enable
|
|
|
|
COPY --from=pruner --chown=node:node /app/out/full/ .
|
|
COPY --from=dev-deps --chown=node:node /app/ .
|
|
COPY --chown=node:node turbo.json turbo.json
|
|
|
|
RUN pnpm run -r --filter @trigger.dev/core bundle-vendor && pnpm run -r --filter kubernetes-provider build:bundle
|
|
|
|
FROM base AS runner
|
|
|
|
RUN corepack enable
|
|
ENV NODE_ENV production
|
|
|
|
COPY --from=builder --chown=node:node /app/apps/kubernetes-provider/dist/index.mjs ./index.mjs
|
|
|
|
EXPOSE 8000
|
|
|
|
USER node
|
|
|
|
CMD [ "/usr/bin/dumb-init", "--", "/usr/local/bin/node", "./index.mjs" ]
|