build: sjednocení Dockerfile
CI / Generate TypeScript types (push) Successful in 1m8s
CI / Server unit tests (push) Successful in 34s
CI / Build server (push) Successful in 1m39s
CI / Build client (push) Successful in 17m30s
CI / Playwright E2E tests (push) Successful in 15m25s
CI / Build and push Docker image (push) Successful in 12m57s
CI / Notify (push) Successful in 11s
CI / Generate TypeScript types (push) Successful in 1m8s
CI / Server unit tests (push) Successful in 34s
CI / Build server (push) Successful in 1m39s
CI / Build client (push) Successful in 17m30s
CI / Playwright E2E tests (push) Successful in 15m25s
CI / Build and push Docker image (push) Successful in 12m57s
CI / Notify (push) Successful in 11s
This commit is contained in:
+33
-8
@@ -1,6 +1,6 @@
|
||||
ARG NODE_VERSION="node:22-alpine"
|
||||
|
||||
# Builder
|
||||
# ─── Builder ──────────────────────────────────────────────────────────────────
|
||||
FROM ${NODE_VERSION} AS builder
|
||||
|
||||
WORKDIR /build
|
||||
@@ -62,8 +62,9 @@ RUN yarn build
|
||||
WORKDIR /build/client
|
||||
RUN yarn build
|
||||
|
||||
# Runner
|
||||
FROM ${NODE_VERSION}
|
||||
# ─── Runner base ──────────────────────────────────────────────────────────────
|
||||
# Společný základ pro oba runner targety – nastaví prostředí a metadata běhu.
|
||||
FROM ${NODE_VERSION} AS runner-base
|
||||
|
||||
RUN apk add --no-cache tzdata
|
||||
ENV TZ=Europe/Prague \
|
||||
@@ -72,6 +73,17 @@ ENV TZ=Europe/Prague \
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Export /data/db.json do složky /data
|
||||
VOLUME ["/data"]
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD [ "node", "./server/src/index.js" ]
|
||||
|
||||
# ─── Runner (default) ─────────────────────────────────────────────────────────
|
||||
# Použití: docker build . (lokální sestavení – vše se buildí uvnitř image)
|
||||
FROM runner-base AS runner
|
||||
|
||||
# Vykopírování sestaveného serveru
|
||||
COPY --from=builder /build/server/node_modules ./server/node_modules
|
||||
COPY --from=builder /build/server/dist ./
|
||||
@@ -85,12 +97,25 @@ COPY /server/.env.production ./server
|
||||
# Zkopírování changelogů (seznamu novinek)
|
||||
COPY /server/changelogs ./server/changelogs
|
||||
|
||||
# Zkopírování konfigurace easter eggů a changelogů
|
||||
# Zkopírování konfigurace easter eggů
|
||||
RUN if [ -f ./server/.easter-eggs.json ]; then cp ./server/.easter-eggs.json ./server/; fi
|
||||
|
||||
# Export /data/db.json do složky /data
|
||||
VOLUME ["/data"]
|
||||
# ─── Runner (prebuilt) ────────────────────────────────────────────────────────
|
||||
# Použití: docker build --target runner-prebuilt .
|
||||
# Očekává předem sestavené artefakty v build kontextu (server/dist,
|
||||
# client/dist, server/node_modules) – využívá Gitea Actions, kde se
|
||||
# server i klient buildí v separátních jobech a sem se jen kopírují.
|
||||
FROM runner-base AS runner-prebuilt
|
||||
|
||||
EXPOSE 3000
|
||||
# Vykopírování sestaveného serveru
|
||||
COPY ./server/node_modules ./server/node_modules
|
||||
COPY ./server/dist ./
|
||||
|
||||
CMD [ "node", "./server/src/index.js" ]
|
||||
# Vykopírování sestaveného klienta
|
||||
COPY ./client/dist ./public
|
||||
|
||||
# Zkopírování changelogů (seznamu novinek)
|
||||
COPY ./server/changelogs ./server/changelogs
|
||||
|
||||
# Zkopírování konfigurace easter eggů
|
||||
RUN if [ -f ./server/.easter-eggs.json ]; then cp ./server/.easter-eggs.json ./server/; fi
|
||||
|
||||
Reference in New Issue
Block a user