This commit is contained in:
Marcus 2026-01-31 10:36:39 -03:00
parent 8a3b661a53
commit ee703a364c

View file

@ -3,15 +3,17 @@
# =============================================================================
FROM mirror.gcr.io/library/node:20-alpine AS base
# Configurações básicas e pnpm
# Configurações básicas e pnpm com Mirror fix para evitar travamentos
RUN sed -i 's/dl-cdn.alpinelinux.org/mirror.leaseweb.com/g' /etc/apk/repositories && \
apk add --no-cache libc6-compat
RUN corepack enable && corepack prepare pnpm@latest --activate
RUN apk add --no-cache libc6-compat
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
# -----------------------------------------------------------------------------
# Stage 1: Dependencies (Instalação real aqui)
# Stage 1: Dependencies
# -----------------------------------------------------------------------------
FROM base AS deps
WORKDIR /app
@ -19,8 +21,10 @@ WORKDIR /app
# Copia apenas os arquivos de definição
COPY package.json pnpm-lock.yaml ./
# Instalamos as dependências de forma clássica (sem --mount para não quebrar no Drone)
RUN pnpm install --frozen-lockfile
# Configura timeout e retry para o pnpm não travar em redes instáveis
RUN pnpm config set fetch-retries 5 && \
pnpm config set fetch-retry-maxtimeout 600000 && \
pnpm install --frozen-lockfile
# -----------------------------------------------------------------------------
# Stage 2: Builder
@ -38,8 +42,7 @@ COPY . .
RUN pnpm build && \
rm -rf node_modules/.cache
# Remove dependências de desenvolvimento para diminuir a imagem final
# Removido --mount para compatibilidade com seu ambiente
# Remove dependências de desenvolvimento
RUN pnpm prune --prod
# -----------------------------------------------------------------------------
@ -47,7 +50,9 @@ RUN pnpm prune --prod
# -----------------------------------------------------------------------------
FROM mirror.gcr.io/library/node:20-alpine AS runner
RUN addgroup -g 1001 -S nodejs && \
# Mirror fix também na imagem final (boa prática para auditorias ou instalações extras)
RUN sed -i 's/dl-cdn.alpinelinux.org/mirror.leaseweb.com/g' /etc/apk/repositories && \
addgroup -g 1001 -S nodejs && \
adduser -S nestjs -u 1001 -G nodejs
WORKDIR /app