Use nginx to serve everything

This commit is contained in:
Bálint Bokros 2018-01-10 16:55:48 +01:00
parent 6436953eea
commit a4d101883e
3 changed files with 45 additions and 1 deletions

View File

@ -5,11 +5,17 @@ RUN apt-get update && \
apt-get install -qy \ apt-get install -qy \
supervisor \ supervisor \
libzmq5 \ libzmq5 \
nginx \
# Provides envsubst
gettext-base \
# These dependencies are required to compile the bz2, readline, sqlite3 # These dependencies are required to compile the bz2, readline, sqlite3
# Python packages # Python packages
libbz2-dev \ libbz2-dev \
libreadline-dev \ libreadline-dev \
libsqlite3-dev libsqlite3-dev && \
chown -R ${AVATAO_USER}: /var/log/nginx /var/lib/nginx && \
# nginx runs as a regular user, and can't write to /run
sed -i 's#pid /run/nginx.pid;#pid /tmp/nginx.pid;#g' /etc/nginx/nginx.conf
USER ${AVATAO_USER} USER ${AVATAO_USER}
@ -43,5 +49,15 @@ COPY src/app ${TFW_APP_DIR}
ENV TFW_EVENT_HANDLERS_DIR="/opt/event_handlers" ENV TFW_EVENT_HANDLERS_DIR="/opt/event_handlers"
COPY src/event_handlers ${TFW_EVENT_HANDLERS_DIR} COPY src/event_handlers ${TFW_EVENT_HANDLERS_DIR}
ENV TFW_FRONTEND_DIR="/srv/frontend"
COPY src/frontend/dist ${TFW_FRONTEND_DIR}
ENV TFW_PUBLIC_PORT=8888
EXPOSE ${TFW_PUBLIC_PORT}
COPY src/nginx /etc/nginx
USER root
RUN envsubst "$(printenv | cut -d= -f1 | grep TFW_ | sed -e 's/^/$/g')" \
< /etc/nginx/sites-available/default > /etc/nginx/sites-available/default
USER ${AVATAO_USER}
CMD . "$HOME/.pyenvrc" && exec supervisord --nodaemon CMD . "$HOME/.pyenvrc" && exec supervisord --nodaemon

View File

@ -0,0 +1,23 @@
server {
listen ${TFW_PUBLIC_PORT};
server_name localhost;
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
location = /ws {
proxy_pass http://127.0.0.1:${TFW_WEB_PORT};
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
location /login/ {
proxy_pass http://127.0.0.1:${TFW_LOGIN_APP_PORT};
}
location / {
root ${TFW_FRONTEND_DIR};
try_files $uri $uri/ index.html;
}
}

View File

@ -28,3 +28,8 @@ command=env python event_handler_main.py
directory=%(ENV_TFW_LOGIN_APP_DIR)s directory=%(ENV_TFW_LOGIN_APP_DIR)s
command=env python server.py command=env python server.py
autostart=false autostart=false
[program:nginx]
command=/usr/sbin/nginx -g 'daemon off;'
autostart=true
autorestart=true