mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
No BuildKit a instrução ARG entra na chave de cache de tudo o que vem depois, e APP_VERSION muda a cada release. No worker ela vinha antes do pnpm install: toda release reinstalava as dependências inteiras. No app (runner) e no scheduler, antes do apk add. Agora declaração e uso descem para depois das camadas caras, junto da cópia do artefato. Medido com Docker real (Dockerfile.scheduler, cache limpo, duas versões): main oficial → apk add DONE 1.2s nas duas; este commit → DONE e depois CACHED. A imagem segue com APP_VERSION certo (conferido dentro do contêiner). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
33 lines
1.2 KiB
Docker
33 lines
1.2 KiB
Docker
# Worker 24/7 do agent-engine (fusão Vendaval) — processo long-running fora do Next.
|
|
# Roda TS direto via tsx (sem build): o worker é I/O-bound e o cold start não importa.
|
|
# ponytail: imagem single-stage com devDeps (tsx precisa); multi-stage + prune é Fase 4.
|
|
FROM node:22-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# Procedência (doutrina de packaging, invariante 2).
|
|
LABEL org.opencontainers.image.source="https://github.com/melgarafael/DeskcommCRM" \
|
|
org.opencontainers.image.licenses="MIT" \
|
|
org.opencontainers.image.title="DeskcommCRM worker"
|
|
|
|
# pnpm fixado na versão do lockfile do repo (pnpm 10 bloquearia build scripts).
|
|
RUN corepack enable && corepack prepare pnpm@9.15.9 --activate
|
|
|
|
COPY package.json pnpm-lock.yaml ./
|
|
COPY patches ./patches
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
COPY . .
|
|
|
|
# A versão por ÚLTIMO. Declarada antes do `pnpm install`, como estava, a
|
|
# instrução `ARG` entrava na chave de cache de tudo o que vem depois e a
|
|
# instalação INTEIRA de dependências era refeita a cada release, só porque o
|
|
# número mudou. Aqui ela só invalida o que não custa nada.
|
|
ARG APP_VERSION=dev
|
|
ENV APP_VERSION=$APP_VERSION
|
|
|
|
# Healthz do worker (bind 0.0.0.0 dentro do container).
|
|
EXPOSE 8787
|
|
|
|
CMD ["pnpm", "exec", "tsx", "workers/agent-worker/main.ts"]
|