From 3a8f1349a106ad26887db97e8767ed3e4fdf1549 Mon Sep 17 00:00:00 2001 From: German Fica Date: Sun, 14 Sep 2025 13:21:14 -0300 Subject: [PATCH 1/2] feat(docker): add production-ready Dockerfile and docker-compose setup - Add multi-stage Dockerfile: - Build stage with Node.js 20 (slim image) - Runtime stage using Nginx (alpine image) - Add docker-compose.yml for local orchestration: - Build service from Dockerfile - Expose container on port 5173 mapped to port 80 - Set NODE_ENV to production --- Dockerfile | 13 +++++++++++++ docker-compose.yml | 7 +++++++ 2 files changed, 20 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..81b574e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +# Build stage +FROM node:20-slim AS build +WORKDIR /app +COPY package*.json ./ +RUN npm ci +COPY . . +RUN npm run build + +# Runtime stage with Nginx +FROM nginx:alpine AS runner +COPY --from=build /app/dist /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..29b5af6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,7 @@ +services: + maskable-app: + build: . + ports: + - "5173:80" + environment: + - NODE_ENV=production From 40f549abce32fd5cca72463900834b9e294722fd Mon Sep 17 00:00:00 2001 From: German Fica Date: Sun, 14 Sep 2025 13:30:10 -0300 Subject: [PATCH 2/2] fix(docker): map container port 80 to host 8080 instead of 5173 - Update docker-compose.yml: - Change port mapping from 5173:80 to 8080:80 - Use 8080 as a more conventional host port for production web servers - Avoid confusion with Vite's default dev port (5173) --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 29b5af6..e223750 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,6 @@ services: maskable-app: build: . ports: - - "5173:80" + - "8080:80" environment: - NODE_ENV=production