diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..790d1fa --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,27 @@ +version: "3.9" + +services: + htwkalender-backend: + build: + dockerfile: Dockerfile + context: ./backend + # open port 8090 + ports: + - "8090:8090" + command: "/htwkalender serve --http=0.0.0.0:8090 --dir=/pb_data" + volumes: + - ./backend/pb_data:/pb_data + htwkalender-frontend: + build: + context: ./code/ + dockerfile: ./frontend/Dockerfile_prod + + rproxy: + image: nginx:stable + volumes: + - ./reverseproxy.conf:/etc/nginx/nginx.conf + depends_on: + - htwkalender-backend + - htwkalender-frontend + ports: + - "80:80" diff --git a/frontend/Dockerfile_prod b/frontend/Dockerfile_prod new file mode 100644 index 0000000..bc59ca6 --- /dev/null +++ b/frontend/Dockerfile_prod @@ -0,0 +1,14 @@ +# build stage +FROM node:latest as build-stage +WORKDIR /app +COPY frontend/package*.json ./ +RUN npm ci +COPY frontend/ . +RUN npm run build + +# production stage +FROM nginx:stable as production-stage +COPY --from=build-stage /app/dist /usr/share/nginx/html +COPY frontend/nginx.conf /etc/nginx/conf.d/default.conf +EXPOSE 8000 +CMD ["nginx", "-g", "daemon off;"]