mirror of
				https://github.com/avatao-content/baseimage-tutorial-framework
				synced 2025-10-31 19:22:54 +00:00 
			
		
		
		
	Refactor Dockerfile (move nginx setup to earlier layers)
This commit is contained in:
		
							
								
								
									
										29
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -4,25 +4,22 @@ 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 - &&\ |     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 &&\ |     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 -qy \ |     apt-get install -y --no-install-recommends \ | ||||||
|         nodejs \ |         nodejs \ | ||||||
|         yarn \ |         yarn \ | ||||||
|         supervisor \ |         supervisor \ | ||||||
|         libzmq5 \ |         libzmq5 \ | ||||||
|         nginx \ |         nginx \ | ||||||
|         # Provides envsubst |  | ||||||
|         gettext-base \ |         gettext-base \ | ||||||
|         # These dependencies are required to compile the bz2, readline, sqlite3 |  | ||||||
|         # Python packages |  | ||||||
|         libbz2-dev \ |         libbz2-dev \ | ||||||
|         libreadline-dev \ |         libreadline-dev \ | ||||||
|         libsqlite3-dev |         libsqlite3-dev &&\ | ||||||
|  |     rm -rf /var/lib/apt/lists/* | ||||||
|  |  | ||||||
| USER ${AVATAO_USER} | USER ${AVATAO_USER} | ||||||
| WORKDIR /home/${AVATAO_USER} | WORKDIR /home/${AVATAO_USER} | ||||||
| COPY .pyenvrc . | COPY .pyenvrc . | ||||||
| COPY requirements.txt /tmp | COPY requirements.txt /tmp | ||||||
| # no GitHub releases are available, so current tip of head is hardcoded to avoid surprises |  | ||||||
| ARG PYTHON_VERSION="3.6.4" | ARG PYTHON_VERSION="3.6.4" | ||||||
| ARG PYENV_INSTALLER_URL="https://raw.githubusercontent.com/pyenv/pyenv-installer/78cfd4d/bin/pyenv-installer" | ARG PYENV_INSTALLER_URL="https://raw.githubusercontent.com/pyenv/pyenv-installer/78cfd4d/bin/pyenv-installer" | ||||||
| ARG PYENV_INSTALLER_HASH=9509348b828f0564358fff456f7f693dd9ace351dc3f240854d7685ad8a8e1dd | ARG PYENV_INSTALLER_HASH=9509348b828f0564358fff456f7f693dd9ace351dc3f240854d7685ad8a8e1dd | ||||||
| @@ -45,8 +42,8 @@ RUN yarn build --no-progress | |||||||
| ENV TFW_WEB_PORT=4242 | ENV TFW_WEB_PORT=4242 | ||||||
| ENV TFW_LOGIN_APP_PORT=6666 | ENV TFW_LOGIN_APP_PORT=6666 | ||||||
| ENV TFW_TERMINADO_PORT=7878 | ENV TFW_TERMINADO_PORT=7878 | ||||||
| ENV TFW_PUBLIC_PORT=8888 |  | ||||||
| ENV TFW_SUPERVISOR_HTTP_PORT=9001 | ENV TFW_SUPERVISOR_HTTP_PORT=9001 | ||||||
|  | ENV TFW_PUBLIC_PORT=8888 | ||||||
| EXPOSE ${TFW_PUBLIC_PORT} | EXPOSE ${TFW_PUBLIC_PORT} | ||||||
|  |  | ||||||
| ENV TFW_EVENT_HANDLERS_DIR="/opt/event_handlers" | ENV TFW_EVENT_HANDLERS_DIR="/opt/event_handlers" | ||||||
| @@ -62,21 +59,21 @@ ENV TFW_NGINX_CONF="/etc/nginx/sites-enabled/default" | |||||||
| ENV TFW_NGINX_COMPONENTS="/etc/nginx/components" | ENV TFW_NGINX_COMPONENTS="/etc/nginx/components" | ||||||
| ENV PYTHONPATH=${TFW_LIB_DIR} | ENV PYTHONPATH=${TFW_LIB_DIR} | ||||||
|  |  | ||||||
| COPY lib ${TFW_LIB_DIR} |  | ||||||
| COPY supervisor/supervisord.conf ${TFW_SUPERVISORD_CONF} |  | ||||||
| COPY supervisor/components/ ${TFW_SUPERVISORD_COMPONENTS} |  | ||||||
| COPY nginx/nginx.conf ${TFW_NGINX_CONF} | COPY nginx/nginx.conf ${TFW_NGINX_CONF} | ||||||
| COPY nginx/components/ ${TFW_NGINX_COMPONENTS} | COPY nginx/components/ ${TFW_NGINX_COMPONENTS} | ||||||
| COPY src/app ${TFW_APP_DIR} |  | ||||||
| COPY src/event_handlers ${TFW_EVENT_HANDLERS_DIR} |  | ||||||
|  |  | ||||||
| RUN chown -R ${AVATAO_USER}: /var/log/nginx /var/lib/nginx &&\ | RUN 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 &&\ |     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 \ |     for f in "${TFW_NGINX_CONF}" ${TFW_NGINX_COMPONENTS}/*.conf; do \ | ||||||
|         envsubst "$(printenv | cut -d= -f1 | grep TFW_ | sed -e 's/^/$/g')" < $f > $f ;\ |         envsubst "$(printenv | cut -d= -f1 | grep TFW_ | sed -e 's/^/$/g')" < $f > $f ;\ | ||||||
|     done &&\ |     done | ||||||
|     mv /data/dist ${TFW_FRONTEND_DIR} |  | ||||||
|  | COPY lib ${TFW_LIB_DIR} | ||||||
|  | COPY supervisor/supervisord.conf ${TFW_SUPERVISORD_CONF} | ||||||
|  | COPY supervisor/components/ ${TFW_SUPERVISORD_COMPONENTS} | ||||||
|  | COPY src/app ${TFW_APP_DIR} | ||||||
|  | COPY src/event_handlers ${TFW_EVENT_HANDLERS_DIR} | ||||||
|  |  | ||||||
|  | RUN mv /data/dist ${TFW_FRONTEND_DIR} | ||||||
|  |  | ||||||
| USER ${AVATAO_USER} | USER ${AVATAO_USER} | ||||||
| WORKDIR /home/${AVATAO_USER} | WORKDIR /home/${AVATAO_USER} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user