runtipi/Dockerfile
Nicolas Meienberger ec8e422eb5 refactor(server): migrate to esbuild to have a smaller docker image size
Migrated the server build to esbuild in order to have one bundle for the whole app including the
used modules
2022-12-15 19:28:03 +00:00

47 lines
No EOL
1.1 KiB
Docker

FROM node:18-alpine3.16 AS builder
# Required for argon2
RUN apk --no-cache add g++
RUN apk --no-cache add make
RUN apk --no-cache add python3
# Required for sharp
RUN apk --no-cache add vips-dev=8.12.2-r5
RUN npm install node-gyp -g
WORKDIR /api
COPY ./packages/system-api/package.json /api/package.json
RUN npm i
# ---
WORKDIR /dashboard
COPY ./packages/dashboard/package.json /dashboard/package.json
RUN npm i
WORKDIR /api
COPY ./packages/system-api /api
RUN npm run build
# ---
WORKDIR /dashboard
COPY ./packages/dashboard /dashboard
RUN npm run build
FROM node:18-alpine3.16 as app
WORKDIR /
WORKDIR /api
COPY ./packages/system-api/package.json /api/
COPY --from=builder --chown=node:node /api/dist /api/dist
WORKDIR /dashboard
COPY --from=builder /dashboard/next.config.js ./
COPY --from=builder /dashboard/public ./public
COPY --from=builder /dashboard/package.json ./package.json
COPY --from=builder --chown=node:node /dashboard/.next/standalone ./
COPY --from=builder --chown=node:node /dashboard/.next/static ./.next/static
RUN mkdir -p /app/logs
USER node
WORKDIR /