mirror of https://github.com/interlegis/sapl.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.6 KiB
92 lines
3.6 KiB
FROM python:3.12-slim-bookworm
|
|
|
|
# Setup env
|
|
ENV LANG C.UTF-8
|
|
ENV LC_ALL C.UTF-8
|
|
ENV PYTHONDONTWRITEBYTECODE 1
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
ENV BUILD_PACKAGES="apt-utils apt-file libpq-dev graphviz-dev build-essential git pkg-config \
|
|
python3-dev libxml2-dev libjpeg-dev libssl-dev libffi-dev libxslt1-dev \
|
|
libcairo2-dev libpango1.0-dev libgdk-pixbuf-2.0-dev libharfbuzz-dev \
|
|
libfreetype6-dev zlib1g-dev software-properties-common python3-setuptools python3-pip"
|
|
|
|
## NAO EH PRA TIRAR O vim DA LISTA DE COMANDOS INSTALADOS!!!
|
|
ENV RUN_PACKAGES="graphviz python3-lxml python3-magic postgresql-client \
|
|
poppler-utils curl jq bash vim python3-venv tzdata nodejs \
|
|
fontconfig python3 nginx tini git \
|
|
libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf-2.0-0 \
|
|
libharfbuzz0b libfreetype6 libjpeg62-turbo zlib1g fonts-dejavu-core"
|
|
|
|
## Update apt-get
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends $BUILD_PACKAGES $RUN_PACKAGES
|
|
|
|
# Create users and groups
|
|
RUN useradd --system --no-create-home --shell /usr/sbin/nologin sapl || true \
|
|
&& groupadd -r nginx || true \
|
|
&& usermod -aG nginx www-data || true \
|
|
&& usermod -aG nginx sapl || true
|
|
|
|
# create base directories and setup access
|
|
RUN mkdir -p /var/interlegis/sapl /var/interlegis/sapl/data /var/interlegis/sapl/media /var/interlegis/sapl/run/ \
|
|
&& chown -R root:nginx /var/interlegis/sapl /var/interlegis/sapl/run/ \
|
|
&& chmod -R g+rwX /var/interlegis/sapl \
|
|
&& chmod 2775 /var/interlegis/sapl /var/interlegis/sapl/run/ \
|
|
&& find /var/interlegis/sapl -type d -exec chmod g+s {} +
|
|
|
|
# Copy app code
|
|
WORKDIR /var/interlegis/sapl/
|
|
COPY . /var/interlegis/sapl/
|
|
|
|
RUN rm -f /etc/nginx/conf.d/*
|
|
COPY docker/config/nginx/sapl.conf /etc/nginx/conf.d/
|
|
COPY docker/config/nginx/nginx.conf /etc/nginx/nginx.conf
|
|
|
|
COPY docker/startup_scripts/start.sh $HOME
|
|
COPY docker/startup_scripts/solr_cli.py $HOME
|
|
COPY docker/startup_scripts/wait-for-pg.sh $HOME
|
|
COPY docker/startup_scripts/wait-for-solr.sh $HOME
|
|
COPY docker/startup_scripts/create_admin.py $HOME
|
|
COPY docker/startup_scripts/genkey.py $HOME
|
|
COPY docker/startup_scripts/gunicorn.conf.py $HOME
|
|
|
|
COPY docker/config/nginx/sapl.conf /etc/nginx/conf.d
|
|
COPY docker/config/nginx/nginx.conf /etc/nginx/nginx.conf
|
|
COPY docker/config/env_dockerfile /var/interlegis/sapl/sapl/.env
|
|
|
|
RUN chmod +x /var/interlegis/sapl/start.sh \
|
|
&& chmod +x /var/interlegis/sapl/wait-for-solr.sh \
|
|
&& chmod +x /var/interlegis/sapl/wait-for-pg.sh \
|
|
&& chmod +x /var/interlegis/sapl/start.sh \
|
|
&& chmod +x /var/interlegis/sapl/wait-for-solr.sh \
|
|
&& chmod +x /var/interlegis/sapl/wait-for-pg.sh
|
|
|
|
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
|
|
&& ln -sf /dev/stderr /var/log/nginx/error.log \
|
|
&& mkdir -p /var/log/sapl/ \
|
|
&& ln -sf /var/interlegis/sapl/sapl.log /var/log/sapl/sapl.log
|
|
|
|
RUN fc-cache -fv \
|
|
&& python -m pip install --no-cache-dir --upgrade pip setuptools \
|
|
&& python -m pip install --no-cache-dir -r requirements/dev-requirements.txt
|
|
|
|
|
|
RUN apt-get purge -y --auto-remove $BUILD_PACKAGES \
|
|
&& apt-get autoremove -y \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN python manage.py collectstatic --noinput --clear
|
|
|
|
RUN rm -f /var/interlegis/sapl/sapl/.env /var/interlegis/sapl/sapl.db || true
|
|
|
|
ENV DEBIAN_FRONTEND=teletype
|
|
|
|
EXPOSE 80 443
|
|
VOLUME ["/var/interlegis/sapl/data", "/var/interlegis/sapl/media", "/var/log/sapl/"]
|
|
|
|
# tini as PID 1 so signals/zombies are handled
|
|
ENTRYPOINT ["/usr/bin/tini","--"]
|
|
CMD ["/var/interlegis/sapl/start.sh"]
|
|
|