mirror of
https://github.com/dadosfera/maestro.git
synced 2026-08-31 19:58:21 +00:00
- Pass TOTP code to DUC for Keycloak users with MFA - Add Dockerfile.local for local protospack builds - Add .dockerignore to exclude node_modules from Docker context 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
58 lines
1.5 KiB
Docker
58 lines
1.5 KiB
Docker
FROM node:22-alpine AS base_image
|
|
RUN npm install -g npm@latest
|
|
|
|
FROM base_image AS build_base
|
|
WORKDIR /app
|
|
RUN apk update
|
|
RUN apk add --no-cache \
|
|
aws-cli \
|
|
chromium \
|
|
nss \
|
|
freetype \
|
|
harfbuzz \
|
|
ca-certificates \
|
|
ttf-freefont
|
|
COPY package*.json ./
|
|
|
|
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
|
|
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
|
|
|
|
|
|
# Local build with secrets
|
|
# Check if local protospack tarball exists (for local dev)
|
|
FROM build_base AS build
|
|
COPY protospack*.tgz* ./
|
|
RUN --mount=type=secret,id=aws,target=/root/.aws/credentials \
|
|
aws codeartifact login --tool npm --namespace @dadosfera --repository dadosfera-npm --domain dadosfera --domain-owner 611330257153 --region us-east-1
|
|
RUN if [ -f "protospack.tgz" ]; then \
|
|
echo "Installing from local protospack tarball..." && \
|
|
npm install ./protospack.tgz --save-exact && \
|
|
npm ci --ignore-scripts && \
|
|
npm rebuild; \
|
|
else \
|
|
echo "Installing from CodeArtifact..." && \
|
|
npm ci; \
|
|
fi
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
|
|
FROM base_image
|
|
WORKDIR /app
|
|
COPY --from=build /app/dist ./dist
|
|
COPY --from=build /app/node_modules ./node_modules
|
|
COPY --from=build /app/package*.json ./
|
|
RUN apk update
|
|
RUN apk add --no-cache \
|
|
chromium \
|
|
nss \
|
|
freetype \
|
|
harfbuzz \
|
|
ca-certificates \
|
|
ttf-freefont
|
|
|
|
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
|
|
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
|
|
|
|
ENTRYPOINT ["npm", "run", "start:prod"]
|