diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index ed5886e3..86bc6b72 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -17,10 +17,16 @@ services: depends_on: - postgres + frontend: + build: ./frontend + volumes: + - www:/app/dist + nginx: build: ./nginx volumes: - static_volume:/home/app/web/staticfiles + - www:/var/www/html:ro ports: - 1337:80 depends_on: @@ -40,3 +46,4 @@ services: volumes: postgres_data: static_volume: + www: diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 00000000..9a9fd574 --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,6 @@ +**/bundle/ +**/node_modules/ +**/webpack-stats.json + +**/.env +**/coverage/ diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 00000000..1a6eb8be --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,18 @@ +FROM node:13.1.0 + +# set work directory +WORKDIR /app + +# set environment variables +# ENV PYTHONDONTWRITEBYTECODE 1 + +# copy project +COPY . /app/ + +# install dependencies +RUN npm install -g npm@latest +RUN npm install + +# build project +RUN npm run build +RUN ls -l \ No newline at end of file diff --git a/frontend/services/api.service.js b/frontend/services/api.service.js index 8e39f9dd..29ce8062 100644 --- a/frontend/services/api.service.js +++ b/frontend/services/api.service.js @@ -1,5 +1,6 @@ import axios from 'axios' const baseURL = 'http://127.0.0.1:8000/v1' // Todo: change URL by development/staging/production. +// const baseURL = '/v1' class ApiService { constructor() { diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 2309f0ee..9bc627c8 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -2,6 +2,11 @@ server { listen 80; charset utf-8; + location / { + root /var/www/html; + try_files $uri $uri/ /index.html; + } + location /v1/ { proxy_pass http://backend:8000/v1/; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;