Initialization cleanup
* Guarantees that the flask db upgrade happens before cron starts * De-duplicates upgrade logic * Provides a convenient place to put more startup steps
This commit is contained in:
parent
94e40ff725
commit
0af140268f
4 changed files with 10 additions and 4 deletions
|
@ -19,13 +19,14 @@ EXPOSE 80/tcp
|
|||
|
||||
ENV FLASK_APP=files/cli:app
|
||||
|
||||
CMD [ "bootstrap/init.sh" ]
|
||||
|
||||
|
||||
###################################################################
|
||||
# Release container
|
||||
FROM base AS release
|
||||
|
||||
COPY bootstrap/supervisord.conf.release /etc/supervisord.conf
|
||||
CMD [ "/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf" ]
|
||||
|
||||
|
||||
###################################################################
|
||||
|
@ -37,7 +38,6 @@ COPY thirdparty/sqlalchemy-easy-profile sqlalchemy-easy-profile
|
|||
RUN cd sqlalchemy-easy-profile && python3 setup.py install
|
||||
|
||||
COPY bootstrap/supervisord.conf.dev /etc/supervisord.conf
|
||||
CMD [ "/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf" ]
|
||||
|
||||
|
||||
###################################################################
|
||||
|
|
6
bootstrap/init.sh
Normal file
6
bootstrap/init.sh
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
set -euxo pipefail
|
||||
|
||||
python3 -m flask db upgrade # this does not actually return error codes properly!
|
||||
|
||||
/usr/local/bin/supervisord -c /etc/supervisord.conf
|
|
@ -12,7 +12,7 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
|||
|
||||
[program:service]
|
||||
directory=/service
|
||||
command=sh -c 'python3 -m flask db upgrade && WERKZEUG_DEBUG_PIN=off ENABLE_SERVICES=true python3 -m flask --debug run --host=0.0.0.0 --port=80'
|
||||
command=sh -c 'WERKZEUG_DEBUG_PIN=off ENABLE_SERVICES=true python3 -m flask --debug run --host=0.0.0.0 --port=80'
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
|
|
|
@ -12,7 +12,7 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
|||
|
||||
[program:service]
|
||||
directory=/service
|
||||
command=sh -c 'python3 -m flask db upgrade && ENABLE_SERVICES=true gunicorn files.__main__:app -k gevent -w ${CORE_OVERRIDE:-$(( `nproc` * 2 ))} --reload -b 0.0.0.0:80 --max-requests 1000 --max-requests-jitter 500'
|
||||
command=sh -c 'ENABLE_SERVICES=true gunicorn files.__main__:app -k gevent -w ${CORE_OVERRIDE:-$(( `nproc` * 2 ))} --reload -b 0.0.0.0:80 --max-requests 1000 --max-requests-jitter 500'
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue