diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..c4055afc --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,31 @@ +# ----- Stage 1: Build Angular SSR App ----- +FROM node:22-alpine AS build +WORKDIR /app + +# Copy package files +COPY package.json package-lock.json ./ + +# Install dependencies (cached if package files haven't changed) +RUN npm ci + +# Copy the rest of the code (including the environment.ts injected by Gitea Actions) +COPY . . + +# Build the Angular app for production +RUN npm run build + +# ----- Stage 2: Serve SSR App ----- +FROM node:22-alpine AS final + +WORKDIR /app + +# Copy the built assets from the build stage. +# Your angular.json defines the base output path as "preview" +COPY --from=build /app/preview ./preview + +# Expose the standard Angular SSR port +EXPOSE 4000 + +# Start the Node.js SSR server +# Note: Angular 17+ SSR usually outputs the server file to /server/server.mjs +CMD ["node", "preview/server/server.mjs"] \ No newline at end of file