Add docker/Dockerfile
This commit is contained in:
@@ -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 <base>/server/server.mjs
|
||||||
|
CMD ["node", "preview/server/server.mjs"]
|
||||||
Reference in New Issue
Block a user