diff --git a/backoffice/Dockerfile b/backoffice/Dockerfile index bc88480..84f2d21 100644 --- a/backoffice/Dockerfile +++ b/backoffice/Dockerfile @@ -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