diff --git a/summer2024-frontend/Dockerfile b/summer2024-frontend/Dockerfile new file mode 100644 index 0000000..d7fabb6 --- /dev/null +++ b/summer2024-frontend/Dockerfile @@ -0,0 +1,27 @@ +FROM node:22-alpine3.19 as builder + +WORKDIR /app + +COPY package.json ./ + +RUN npm i + +COPY . . + +RUN npm run build + +# Stage 2, based on Nginx, to have only the compiled app, ready for production with Nginx + +FROM nginxinc/nginx-unprivileged:1.27-alpine + +COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf + +USER root + +## Remove default nginx website +RUN rm -rf /usr/share/nginx/html/* + +## From ‘builder’ stage copy over the artifacts in dist folder to default nginx public folder +COPY --from=builder /app/dist /usr/share/nginx/html + +USER $UID diff --git a/summer2024-frontend/nginx-custom.conf b/summer2024-frontend/nginx-custom.conf new file mode 100644 index 0000000..58e8e06 --- /dev/null +++ b/summer2024-frontend/nginx-custom.conf @@ -0,0 +1,10 @@ +server { + listen 8080; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html =404; + } +}