CoreControl/Dockerfile

51 lines
1.4 KiB
Docker
Raw Normal View History

2025-04-13 21:10:17 +02:00
# Builder Stage
2025-04-29 21:17:21 +02:00
FROM --platform=$BUILDPLATFORM node:20-alpine AS builder
ARG TARGETARCH # Wird automatisch von Buildx gesetzt
2025-04-13 21:10:17 +02:00
WORKDIR /app
2025-04-29 21:17:21 +02:00
RUN case ${TARGETARCH} in \
"amd64") export PRISMA_CLI_BINARY_TARGETS="linux-musl-x64-openssl-3.0.x" ;; \
"arm64") export PRISMA_CLI_BINARY_TARGETS="linux-musl-arm64-openssl-3.0.x" ;; \
"arm") export PRISMA_CLI_BINARY_TARGETS="linux-musl-arm-openssl-3.0.x" ;; \
*) echo "Unsupported ARCH: ${TARGETARCH}" && exit 1 ;; \
esac
2025-04-13 21:10:17 +02:00
COPY package.json package-lock.json* ./
COPY ./prisma ./prisma
RUN npm install
RUN npx prisma generate
COPY . .
RUN npm run build
2025-04-14 17:19:13 +02:00
# Production Stage
2025-04-29 21:17:21 +02:00
FROM --platform=$TARGETPLATFORM node:20-alpine AS production
2025-04-13 21:10:17 +02:00
WORKDIR /app
2025-04-30 14:57:19 +02:00
ENV NODE_ENV production
ENV PRISMA_CLI_BINARY_TARGETS="linux-musl-arm64-openssl-3.0.x"
2025-04-13 21:10:17 +02:00
2025-04-30 14:57:19 +02:00
COPY --from=builder /app/node_modules ./node_modules
2025-04-14 17:19:13 +02:00
COPY --from=builder /app/prisma ./prisma
2025-04-13 21:10:17 +02:00
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
2025-04-30 14:57:19 +02:00
COPY --from=builder /app/package.json ./package.json
2025-04-13 21:10:17 +02:00
COPY --from=builder /app/next.config.js* ./
2025-04-30 14:57:19 +02:00
RUN npm prune --production
2025-04-29 21:17:21 +02:00
EXPOSE 3000
2025-04-16 14:55:09 +02:00
CMD ["sh", "-c", "npx prisma migrate deploy && npm start"]
2025-04-29 21:17:21 +02:00
# - - BUILD COMMAND - -
# docker buildx build \
# --platform linux/amd64,linux/arm64,linux/arm/v7 \
# -t haedlessdev/corecontrol:1.0.0 \
# -t haedlessdev/corecontrol:latest \
# --push \
# .