mirror of
https://github.com/avatao-content/baseimage-tutorial-framework
synced 2024-11-22 07:41:32 +00:00
Rearrange project and dockerize
This commit is contained in:
parent
e08be83c5e
commit
c3e35cd549
4
.pyenvrc
Normal file
4
.pyenvrc
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export PYENV_ROOT="$HOME/.pyenv"
|
||||||
|
export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
|
eval "$(pyenv init -)"
|
||||||
|
eval "$(pyenv virtualenv-init -)"
|
43
Dockerfile
Normal file
43
Dockerfile
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
FROM avatao/ubuntu:16.04
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -qy \
|
||||||
|
supervisor \
|
||||||
|
libzmq5 \
|
||||||
|
# These dependencies are required by the bz2, readline, sqlite3 packages
|
||||||
|
libbz2-dev \
|
||||||
|
libreadline-dev \
|
||||||
|
libsqlite3-dev
|
||||||
|
|
||||||
|
ENV TFW_APP_DIR="/srv/app"
|
||||||
|
COPY src/app ${TFW_APP_DIR}
|
||||||
|
|
||||||
|
ENV TFW_COMPONENTS_DIR="/opt/components"
|
||||||
|
COPY src/components ${TFW_COMPONENTS_DIR}
|
||||||
|
|
||||||
|
ENV TFW_CONFIG_DIR="/usr/local/lib/"
|
||||||
|
ENV PYTHONPATH=${TFW_CONFIG_DIR}
|
||||||
|
COPY lib $TFW_CONFIG_DIR
|
||||||
|
|
||||||
|
ENV TFW_SUPERVISORD_CONF="/etc/supervisor/supervisord.conf"
|
||||||
|
COPY supervisord.conf ${TFW_SUPERVISORD_CONF}
|
||||||
|
|
||||||
|
USER user
|
||||||
|
|
||||||
|
COPY .pyenvrc /home/user/.pyenvrc
|
||||||
|
ENV PYTHON_VERSION="3.6.3"
|
||||||
|
RUN curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash && \
|
||||||
|
echo "source $HOME/.pyenvrc" >> "$HOME/.bashrc" && \
|
||||||
|
. "$HOME/.pyenvrc" && \
|
||||||
|
pyenv install ${PYTHON_VERSION} && \
|
||||||
|
pyenv global ${PYTHON_VERSION} && \
|
||||||
|
pip install tornado pyzmq transitions
|
||||||
|
|
||||||
|
ENV PYENV_ROOT="$HOME/.pyenv"
|
||||||
|
ENV PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
|
|
||||||
|
ENV WEB_PORT=4242
|
||||||
|
EXPOSE 4242
|
||||||
|
|
||||||
|
CMD . "$HOME/.pyenvrc" && exec supervisord --nodaemon
|
@ -1,5 +0,0 @@
|
|||||||
import os
|
|
||||||
|
|
||||||
PUBLISHER_PORT = os.getenv('PUBLISHER_PORT', 7654)
|
|
||||||
RECEIVER_PORT = os.getenv('RECEIVER_PORT', 8765)
|
|
||||||
WEB_PORT = os.getenv('WEB_PORT', 4242)
|
|
23
supervisord.conf
Normal file
23
supervisord.conf
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[supervisord]
|
||||||
|
user=user
|
||||||
|
logfile = /tmp/supervisord.log
|
||||||
|
loglevel = DEBUG
|
||||||
|
pidfile = /tmp/supervisord.pid
|
||||||
|
|
||||||
|
[unix_http_server]
|
||||||
|
file=/tmp/supervisor.sock
|
||||||
|
|
||||||
|
[rpcinterface:supervisor]
|
||||||
|
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||||||
|
|
||||||
|
[supervisorctl]
|
||||||
|
serverurl=unix:///tmp/supervisor.sock
|
||||||
|
|
||||||
|
[program:app]
|
||||||
|
directory=%(ENV_TFW_APP_DIR)s
|
||||||
|
command=env python app.py
|
||||||
|
|
||||||
|
[program:component_example]
|
||||||
|
directory=%(ENV_TFW_COMPONENTS_DIR)s
|
||||||
|
command=env python component_example.py
|
||||||
|
autorestart=true
|
Loading…
Reference in New Issue
Block a user