63 lines
1.5 KiB
Docker

FROM python:3.11-slim as base
LABEL AUTHOR="AKI Projektseminar 23" \
PROJECT="Transparenzregister" \
ORGANISATION="fh-swf.de"
ENV SQLALCHEMY_SILENCE_UBER_WARNING="1"
ARG APP_HOME="transparenzregister"
ARG GIT_HASH
ENV GIT_HASH=${GIT_HASH}
LABEL GIT_HASH=${GIT_HASH}
WORKDIR /${APP_HOME}/
USER root
RUN apt update -y && \
apt install git sqlite3 tini -y && \
rm -rf /var/lib/apt/lists/*
COPY dist/*.whl dist/
RUN pip install --find-links=dist aki-prj23-transparenzregister --no-cache-dir
FROM base as ingest
LABEL PART="DATA_INGESTOR"
### Install Chrome ###
# Update the package lists
RUN apt-get update
# Install wget and unzip
RUN apt-get install -y wget unzip
# Install Google Chrome
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN dpkg -i google-chrome-stable_current_amd64.deb; apt-get -fy install
RUN pip install --find-links=dist aki-prj23-transparenzregister[ingest] --no-cache-dir && \
rm dist/ -R
ENTRYPOINT ["/usr/bin/tini", "--", "ingest", "ENV"]
CMD ["--level", "DEBUG"]
FROM base as data-transformation
LABEL PART="DATA-TRANSFORMATION"
RUN pip install --find-links=dist aki-prj23-transparenzregister[transformation] --no-cache-dir && \
rm dist/ -R
ENTRYPOINT ["/usr/bin/tini", "--", "data-processing", "ENV"]
CMD ["--level", "DEBUG"]
FROM base as web-server
LABEL PART="WEB-SERVER"
RUN pip install --find-links=dist aki-prj23-transparenzregister[web-server] --no-cache-dir && \
rm dist/ -R
ENTRYPOINT ["/usr/bin/tini", "--", "webserver", "ENV"]
CMD ["--level", "DEBUG"]