diff --git a/deploy/Dockerfile.frontend b/deploy/Dockerfile.frontend index 83d67f9..2b83693 100644 --- a/deploy/Dockerfile.frontend +++ b/deploy/Dockerfile.frontend @@ -7,6 +7,6 @@ RUN npm run build --prefix frontend FROM nginx:stable-alpine COPY --from=builder /app/frontend/dist /usr/share/nginx/html -COPY deploy/nginx/chat.conf /etc/nginx/conf.d/default.conf +COPY deploy/nginx/docker-chat.conf /etc/nginx/conf.d/default.conf EXPOSE 8443 CMD ["nginx", "-g", "daemon off;"] diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml new file mode 100644 index 0000000..32b46ba --- /dev/null +++ b/deploy/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3.8' +services: + backend: + build: + context: . + dockerfile: deploy/Dockerfile.backend + ports: + - "4000:4000" + restart: always + environment: + - NODE_ENV=production + + frontend: + build: + context: . + dockerfile: deploy/Dockerfile.frontend + ports: + - "8443:8443" + restart: always + depends_on: + - backend diff --git a/deploy/nginx/docker-chat.conf b/deploy/nginx/docker-chat.conf new file mode 100644 index 0000000..78e4666 --- /dev/null +++ b/deploy/nginx/docker-chat.conf @@ -0,0 +1,25 @@ +server { + listen 8443; + server_name _; + + root /usr/share/nginx/html; + index index.html; + + location /api/ { + proxy_pass http://backend:4000/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_buffering off; + chunked_transfer_encoding off; + } + + location / { + try_files $uri $uri/ /index.html; + } +}