Working to let react app work in Docker
Signed-off-by: James Ketrenos <james_git@ketrenos.com>
This commit is contained in:
parent
535816033b
commit
726246778a
@ -17,3 +17,5 @@
|
|||||||
!src
|
!src
|
||||||
!util
|
!util
|
||||||
!ketrface
|
!ketrface
|
||||||
|
!client
|
||||||
|
!scripts
|
||||||
|
24
Dockerfile
24
Dockerfile
@ -45,33 +45,41 @@ WORKDIR /website
|
|||||||
RUN npm upgrade && npm install
|
RUN npm upgrade && npm install
|
||||||
|
|
||||||
WORKDIR /website/client
|
WORKDIR /website/client
|
||||||
COPY /website/client/package*json /website/client
|
COPY /client/package*json /website/client/
|
||||||
RUN npm upgrade && npm install
|
RUN npm upgrade && npm install
|
||||||
|
|
||||||
COPY /config/default.json /website/config/default.json
|
COPY /config/default.json /website/config/default.json
|
||||||
COPY /*js /website/
|
COPY /*js /website/
|
||||||
COPY /src /website/src
|
COPY /src /website/src
|
||||||
COPY /client /website/client
|
COPY /client/public /website/client/public
|
||||||
|
COPY /client/src /website/client/src
|
||||||
COPY /scanner /website/scanner
|
COPY /scanner /website/scanner
|
||||||
COPY /server /website/server
|
COPY /server /website/server
|
||||||
COPY /frontend /website/frontend
|
COPY /frontend /website/frontend
|
||||||
COPY /ketrface /website/ketrface
|
COPY /ketrface /website/ketrface
|
||||||
|
|
||||||
|
# Switch to bash instead of sh
|
||||||
|
SHELL [ "/bin/bash", "-c" ]
|
||||||
|
|
||||||
|
ARG DEVELOPMENT=
|
||||||
|
|
||||||
# If not DEVELOPMENT mode, copy production config, else development
|
# If not DEVELOPMENT mode, copy production config, else development
|
||||||
RUN \
|
RUN \
|
||||||
if [[ -z "${DEVELOPMENT}" ]]; then \
|
if [[ -z "${DEVELOPMENT}" ]]; then \
|
||||||
echo "Building PRODUCTION" ; \
|
echo "Building PRODUCTION" ; \
|
||||||
cp /website/server/production.location /etc/nginx/snippets/active.location ; \
|
cp /website/server/production.location \
|
||||||
|
/etc/nginx/snippets/active.location ; \
|
||||||
else \
|
else \
|
||||||
echo "Building DEVELOPMENT" ; \
|
echo "Building DEVELOPMENT" ; \
|
||||||
cp /website/server/development.location /etc/nginx/snippets/active.location ; \
|
cp /website/server/development.location \
|
||||||
|
/etc/nginx/snippets/active.location ; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If not DEVELOPMENT mode, then locally build project
|
# If not DEVELOPMENT mode, then locally build project
|
||||||
RUN \
|
RUN \
|
||||||
if [[ -z "${DEVELOPMENT}" ]]; then \
|
if [[ -z "${DEVELOPMENT}" ]]; then \
|
||||||
cd /website/client ; \
|
cd /website/client ; \
|
||||||
npm run build ; \
|
npm run build ; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
COPY /scripts /opt/scripts
|
COPY /scripts /opt/scripts
|
||||||
|
@ -17,8 +17,8 @@ services:
|
|||||||
# - db
|
# - db
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- ${PORT}:${TARGET_PORT:-8123}
|
- ${PORT}:80 # nginx -> server/app.js express app
|
||||||
- 127.0.0.1:14200:4200 # shellinabox
|
- 127.0.0.1:14200:4200 # shellinabox
|
||||||
volumes:
|
volumes:
|
||||||
- ${PICTURES}:/pictures
|
- ${PICTURES}:/pictures
|
||||||
- ${PWD}/db:/website/db
|
- ${PWD}/db:/website/db
|
||||||
|
14
server/development.location
Normal file
14
server/development.location
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# DEVELOPMENT -- use npm development server on port 3000 (entrypoint.sh)
|
||||||
|
location / {
|
||||||
|
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_set_header Host $http_host;
|
||||||
|
proxy_set_header X-NginX-Proxy true;
|
||||||
|
proxy_pass_header Set-Cookie;
|
||||||
|
proxy_pass_header P3P;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_pass https://localhost:3000/;
|
||||||
|
}
|
54
server/nginx.conf
Normal file
54
server/nginx.conf
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
server {
|
||||||
|
root /website;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
access_log /var/log/nginx/access.log;
|
||||||
|
error_log stderr;
|
||||||
|
|
||||||
|
autoindex on;
|
||||||
|
|
||||||
|
# 'active.conf' is copied during docker build based on whether
|
||||||
|
# DEVELOPMENT is set (development.conf) or not (production.conf)
|
||||||
|
include snippets/active.location;
|
||||||
|
|
||||||
|
# proxy_pass has automatic redirect from v1 -> v1/
|
||||||
|
location /api/v1/ {
|
||||||
|
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_set_header Host $http_host;
|
||||||
|
proxy_set_header X-NginX-Proxy true;
|
||||||
|
proxy_pass_header Set-Cookie;
|
||||||
|
proxy_pass_header P3P;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_pass http://localhost:8123/api/v1/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# This routes all traffic to the Node Express server
|
||||||
|
#
|
||||||
|
# Eventually, a SSO layer in nginx can be used so the Express
|
||||||
|
# server does not need to be part of serving static content.
|
||||||
|
#
|
||||||
|
# See https://gist.github.com/mjbnz/b402edf819a69e517b0c59710f291da9
|
||||||
|
# for example.
|
||||||
|
location / {
|
||||||
|
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_set_header Host $http_host;
|
||||||
|
proxy_set_header X-NginX-Proxy true;
|
||||||
|
proxy_pass_header Set-Cookie;
|
||||||
|
proxy_pass_header P3P;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_pass https://localhost:8123/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ /(db|conf) {
|
||||||
|
deny all;
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
}
|
6
server/production.location
Normal file
6
server/production.location
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# PRODUCTION -- pre-built source
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
alias /website/client/build/;
|
||||||
|
index index.html;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user