From ec83cbe7a0a0449da3300cb251e306663f0bbb9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Sun, 11 Feb 2018 15:20:06 +0100 Subject: [PATCH] Make Dockerfile bootiful again --- Dockerfile | 97 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 47 deletions(-) diff --git a/Dockerfile b/Dockerfile index 07e969f..4147105 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,19 @@ FROM avatao/ubuntu:16.04 -RUN curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - &&\ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - &&\ +RUN curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - &&\ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - &&\ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list &&\ - apt-get update &&\ + apt-get update &&\ apt-get install -y --no-install-recommends \ - nodejs \ - yarn \ - supervisor \ - libzmq5 \ - nginx \ - gettext-base \ - libbz2-dev \ - libreadline-dev \ - libsqlite3-dev &&\ + nodejs \ + yarn \ + supervisor \ + libzmq5 \ + nginx \ + gettext-base \ + libbz2-dev \ + libreadline-dev \ + libsqlite3-dev &&\ rm -rf /var/lib/apt/lists/* USER ${AVATAO_USER} @@ -23,14 +23,14 @@ COPY requirements.txt /tmp ARG PYTHON_VERSION="3.6.4" ARG PYENV_INSTALLER_URL="https://raw.githubusercontent.com/pyenv/pyenv-installer/78cfd4d/bin/pyenv-installer" ARG PYENV_INSTALLER_HASH=9509348b828f0564358fff456f7f693dd9ace351dc3f240854d7685ad8a8e1dd -RUN curl -fSL -o pyenv-installer ${PYENV_INSTALLER_URL} &&\ +RUN curl -fSL -o pyenv-installer ${PYENV_INSTALLER_URL} &&\ echo "${PYENV_INSTALLER_HASH} *pyenv-installer" | sha256sum -c - &&\ - bash pyenv-installer &&\ - rm pyenv-installer &&\ - echo "source $HOME/.pyenvrc" >> .bashrc &&\ - . $HOME/.pyenvrc &&\ - pyenv install ${PYTHON_VERSION} &&\ - pyenv global ${PYTHON_VERSION} &&\ + bash pyenv-installer &&\ + rm pyenv-installer &&\ + echo "source $HOME/.pyenvrc" >> .bashrc &&\ + . $HOME/.pyenvrc &&\ + pyenv install ${PYTHON_VERSION} &&\ + pyenv global ${PYTHON_VERSION} &&\ pip install -r /tmp/requirements.txt USER root @@ -39,38 +39,34 @@ COPY src/frontend /data/ RUN yarn install --frozen-lockfile RUN yarn build --no-progress -ENV TFW_WEB_PORT=4242 -ENV TFW_LOGIN_APP_PORT=6666 -ENV TFW_TERMINADO_PORT=7878 -ENV TFW_SUPERVISOR_HTTP_PORT=9001 -ENV TFW_PUBLIC_PORT=8888 -ENV TFW_CONTROLLER_PORT=7777 -ENV TFW_CRP_LISTENER_PORT=5555 -ENV TFW_PUBLISHER_PORT=7654 -ENV TFW_RECEIVER_PORT=8765 -EXPOSE ${TFW_PUBLIC_PORT} -EXPOSE ${TFW_CRP_LISTENER_PORT} +ENV TFW_PUBLIC_PORT=8888 \ + TFW_WEB_PORT=4242 \ + TFW_LOGIN_APP_PORT=6666 \ + TFW_TERMINADO_PORT=7878 \ + TFW_SUPERVISOR_HTTP_PORT=9001 \ + TFW_CONTROLLER_PORT=7777 \ + TFW_CRP_LISTENER_PORT=5555 \ + TFW_PUBLISHER_PORT=7654 \ + TFW_RECEIVER_PORT=8765 -ENV TFW_SUPERVISOR_HTTP_URI="http://localhost:${TFW_SUPERVISOR_HTTP_PORT}" -ENV TFW_APP_DIR="/srv/app" -ENV TFW_CONTROLLER_DIR="/srv/controller" -ENV TFW_FRONTEND_DIR="/srv/frontend" -ENV TFW_LOGIN_APP_DIR="/tmp/source_code_server" -ENV TFW_TERMINADO_DIR="/tmp/terminado_server" -ENV TFW_WEBIDE_WD="/home/${AVATAO_USER}/workdir" -ENV TFW_TERMINADO_WD=${TFW_WEBIDE_WD} -ENV TFW_LIB_DIR="/usr/local/lib/" -ENV TFW_SUPERVISORD_CONF="/etc/supervisor/supervisord.conf" -ENV TFW_SUPERVISORD_COMPONENTS="/etc/supervisor/conf" -ENV TFW_NGINX_CONF="/etc/nginx/sites-enabled/default" -ENV TFW_NGINX_COMPONENTS="/etc/nginx/components" -ENV PYTHONPATH=${TFW_LIB_DIR} +EXPOSE ${TFW_PUBLIC_PORT} ${TFW_CRP_LISTENER_PORT} + +ENV PYTHONPATH="/usr/local/lib/" \ + TFW_SUPERVISOR_HTTP_URI="http://localhost:${TFW_SUPERVISOR_HTTP_PORT}" \ + TFW_SUPERVISORD_CONF="/etc/supervisor/supervisord.conf" \ + TFW_SUPERVISORD_COMPONENTS="/etc/supervisor/conf" \ + TFW_NGINX_CONF="/etc/nginx/sites-enabled/default" \ + TFW_NGINX_COMPONENTS="/etc/nginx/components" \ + TFW_LIB_DIR="/usr/local/lib/" \ + TFW_CONTROLLER_DIR="/srv/controller" \ + TFW_TERMINADO_DIR="/tmp/terminado_server" \ + TFW_FRONTEND_DIR="/srv/frontend" COPY nginx/nginx.conf ${TFW_NGINX_CONF} COPY nginx/components/ ${TFW_NGINX_COMPONENTS} -RUN chown -R ${AVATAO_USER} /var/log/nginx /var/lib/nginx &&\ - sed -i 's#pid /run/nginx.pid;#pid /tmp/nginx.pid;#g' /etc/nginx/nginx.conf &&\ - for f in "${TFW_NGINX_CONF}" ${TFW_NGINX_COMPONENTS}/*.conf; do \ +RUN chown -R ${AVATAO_USER} /var/log/nginx /var/lib/nginx &&\ + sed -i 's#pid /run/nginx.pid;#pid /tmp/nginx.pid;#g' /etc/nginx/nginx.conf &&\ + for f in "${TFW_NGINX_CONF}" ${TFW_NGINX_COMPONENTS}/*.conf; do \ envsubst "$(printenv | cut -d= -f1 | grep TFW_ | sed -e 's/^/$/g')" < $f > $f ;\ done @@ -80,6 +76,13 @@ COPY lib ${TFW_LIB_DIR} COPY src/controller ${TFW_CONTROLLER_DIR} COPY lib/tfw/components/terminado_mini_server.py ${TFW_TERMINADO_DIR}/ +### TFW internals ^ ### DEMO v ############################################################### + +ENV TFW_APP_DIR="/srv/app" \ + TFW_LOGIN_APP_DIR="/tmp/source_code_server" \ + TFW_WEBIDE_WD="/home/${AVATAO_USER}/workdir" \ + TFW_TERMINADO_WD="/home/${AVATAO_USER}/workdir" + RUN mv /data/dist ${TFW_FRONTEND_DIR} COPY src/demo ${TFW_APP_DIR}/