Files
minecraft-account-manager/Dockerfile
T
dmg 420389d601
CI / validate (push) Successful in 6m40s
Release / release (push) Successful in 11m55s
ci(release): publish versioned artifacts
2026-08-01 15:02:31 -04:00

49 lines
1.8 KiB
Docker

# syntax=docker/dockerfile:1
FROM node:22-alpine AS dependencies
WORKDIR /app
RUN apk add --no-cache libc6-compat
COPY package.json package-lock.json ./
COPY apps/web/package.json ./apps/web/package.json
COPY apps/discord-bot/package.json ./apps/discord-bot/package.json
COPY packages/auth/package.json ./packages/auth/package.json
COPY packages/contracts/package.json ./packages/contracts/package.json
COPY packages/database/package.json ./packages/database/package.json
COPY packages/minecraft/package.json ./packages/minecraft/package.json
COPY packages/network/package.json ./packages/network/package.json
RUN npm ci
FROM dependencies AS builder
COPY . .
RUN npm run build --workspace @minecraft-account-manager/web
FROM node:22-alpine AS runner
ARG VERSION=development
LABEL org.opencontainers.image.title="Minecraft Account Manager" \
org.opencontainers.image.version="${VERSION}" \
org.opencontainers.image.source="https://git.garvis.dev/dmg/minecraft-account-manager"
WORKDIR /app
ENV NODE_ENV=production \
HOSTNAME=0.0.0.0 \
PORT=3000
RUN addgroup --system app && adduser --system --ingroup app app
COPY --from=builder --chown=app:app /app/apps/web/.next/standalone ./
COPY --from=builder --chown=app:app /app/apps/web/.next/static ./apps/web/.next/static
USER app
EXPOSE 3000
CMD ["node", "apps/web/server.js"]
FROM dependencies AS migrate
ARG VERSION=development
LABEL org.opencontainers.image.title="Minecraft Account Manager Migrations" \
org.opencontainers.image.version="${VERSION}" \
org.opencontainers.image.source="https://git.garvis.dev/dmg/minecraft-account-manager"
WORKDIR /app
ENV NODE_ENV=production
RUN addgroup --system app && adduser --system --ingroup app app
COPY --chown=app:app package.json package-lock.json tsconfig.base.json ./
COPY --chown=app:app packages ./packages
USER app
CMD ["npm", "run", "db:migrate"]