From f57334bfb90f85dbc90dd17f3f4d6d9a915720c5 Mon Sep 17 00:00:00 2001 From: eribeiro Date: Tue, 1 Sep 2020 13:07:04 -0300 Subject: [PATCH] Migra imagem do SAPL de Alpine para Debian (slim-buster) --- Dockerfile | 48 +++++++++++++++++++++++++++++++++-------------- gunicorn_start.sh | 9 --------- start.sh | 2 +- 3 files changed, 35 insertions(+), 24 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2f2fe688b..78287ad42 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,35 @@ -FROM alpine:3.10 +FROM python:3.7-slim-buster as base -ENV BUILD_PACKAGES postgresql-dev graphviz-dev graphviz build-base git pkgconfig \ - python3-dev libxml2-dev jpeg-dev libressl-dev libffi-dev libxslt-dev \ - nodejs py3-lxml py3-magic postgresql-client poppler-utils antiword \ - curl jq openssh-client vim bash postgresql-client cairo-dev +# Setup env +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 +ENV PYTHONDONTWRITEBYTECODE 1 -RUN apk update --update-cache && apk upgrade +#ENV PYTHONFAULTHANDLER 1 -RUN apk --update add fontconfig ttf-dejavu && fc-cache -fv +ENV DEBIAN_FRONTEND noninteractive -RUN apk add --no-cache python3 nginx tzdata && \ - python3 -m ensurepip && \ - rm -r /usr/lib/python*/ensurepip && \ +ENV BUILD_PACKAGES apt-file libpq-dev graphviz-dev graphviz build-essential git pkg-config \ + python3-dev libxml2-dev libjpeg-dev libssl-dev libffi-dev libxslt1-dev pgadmin3 \ + python3-lxml python3-magic postgresql-contrib postgresql-client libcairo2-dev \ + python3-psycopg2 poppler-utils vim curl jq vim openssh-client bash software-properties-common \ + software-properties-common python3-setuptools python3-venv nginx tzdata nodejs + +RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends apt-utils + +RUN apt-get install -y --no-install-recommends $BUILD_PACKAGES + +RUN mkdir -p /usr/share/man/man1 && mkdir -p /usr/share/man/man7 +RUN apt-get install -y fontconfig ttf-dejavu && fc-cache -fv + + +FROM base as python-base + +RUN apt-get install -y python python3-pip && \ pip3 install --upgrade pip setuptools && \ - pip3 install wheel && \ - rm -r /root/.cache && \ rm -f /etc/nginx/conf.d/* -RUN mkdir -p /var/interlegis/sapl && \ - apk add --update --no-cache $BUILD_PACKAGES +RUN mkdir -p /var/interlegis/sapl WORKDIR /var/interlegis/sapl/ @@ -35,6 +46,8 @@ COPY config/env_dockerfile /var/interlegis/sapl/sapl/.env RUN python3 manage.py collectstatic --noinput --clear +FROM python-base + # Remove .env(fake) e sapl.db da imagem RUN rm -rf /var/interlegis/sapl/sapl/.env && \ rm -rf /var/interlegis/sapl/sapl.db @@ -46,6 +59,13 @@ RUN chmod +x /var/interlegis/sapl/start.sh && \ mkdir /var/log/sapl/ && touch /var/interlegis/sapl/sapl.log && \ ln -s /var/interlegis/sapl/sapl.log /var/log/sapl/sapl.log +# Debian não possui usuário 'nginx' necessário para o Debian +RUN useradd --no-create-home nginx + +ENV DEBIAN_FRONTEND teletype + +EXPOSE 80/tcp 443/tcp + VOLUME ["/var/interlegis/sapl/data", "/var/interlegis/sapl/media"] CMD ["/var/interlegis/sapl/start.sh"] diff --git a/gunicorn_start.sh b/gunicorn_start.sh index 019ccaaed..708f742be 100755 --- a/gunicorn_start.sh +++ b/gunicorn_start.sh @@ -25,15 +25,6 @@ DJANGO_WSGI_MODULE=sapl.wsgi # WSGI module name (*) echo "Starting $NAME as `whoami` on base dir $SAPL_DIR" -# parameter can be passed to run without virtualenv -if [[ "$@" != "no-venv" ]]; then - # Activate the virtual environment - cd $DJANGODIR - source /var/interlegis/.virtualenvs/sapl/bin/activate - export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE - export PYTHONPATH=$DJANGODIR:$PYTHONPATH -fi - # Create the run directory if it doesn't exist RUNDIR=$(dirname $SOCKFILE) test -d $RUNDIR || mkdir -p $RUNDIR diff --git a/start.sh b/start.sh index cec16f6c7..868942bfd 100755 --- a/start.sh +++ b/start.sh @@ -117,5 +117,5 @@ echo "| ███████║██║ ██║██║ ████ echo "| ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝ |" echo "-------------------------------------" -/bin/sh gunicorn_start.sh no-venv & +/bin/sh gunicorn_start.sh & /usr/sbin/nginx -g "daemon off;"