|
| 1 | +FROM nestybox/ubuntu-noble-systemd-docker@sha256:8b1c4409fe89bc110e1e468767074fe4403ba6bb2d1b34881fec5df8b6c2f9c3 AS fact_base |
| 2 | + |
| 3 | +ARG FACT_DIR=/opt/fact |
| 4 | +COPY src $FACT_DIR |
| 5 | +WORKDIR $FACT_DIR |
| 6 | + |
| 7 | +RUN --mount=type=cache,target=/var/cache/apt \ |
| 8 | + --mount=type=cache,target=/var/lib/apt \ |
| 9 | + apt-get update && \ |
| 10 | + apt-get install -y --no-install-recommends \ |
| 11 | + curl \ |
| 12 | + python3-venv \ |
| 13 | + postgresql-client \ |
| 14 | + redis-tools |
| 15 | + |
| 16 | +RUN python3 -m venv venv |
| 17 | +ARG VENV_DIR=$FACT_DIR/venv/bin |
| 18 | +ENV PATH=$VENV_DIR:$PATH \ |
| 19 | + VIRTUAL_ENV=$VENV_DIR \ |
| 20 | + PYTHONPATH=$FACT_DIR \ |
| 21 | + FACT_INSTALLER_SKIP_DOCKER=1 |
| 22 | + |
| 23 | +RUN --mount=type=cache,target=/var/cache/apt \ |
| 24 | + --mount=type=cache,target=/var/lib/apt \ |
| 25 | + ./install/pre_install.sh -D |
| 26 | + |
| 27 | +FROM fact_base AS fact_frontend |
| 28 | + |
| 29 | +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ |
| 30 | + --mount=type=cache,target=/var/lib/apt,sharing=locked \ |
| 31 | + python3 install.py -F -H |
| 32 | + |
| 33 | +RUN chown -R admin:admin "$FACT_DIR" |
| 34 | + |
| 35 | +COPY --chown=admin docker/entrypoint_frontend.sh . |
| 36 | + |
| 37 | +ENTRYPOINT ["./entrypoint_frontend.sh"] |
| 38 | + |
| 39 | +FROM fact_base AS fact_backend |
| 40 | + |
| 41 | +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ |
| 42 | + --mount=type=cache,target=/var/lib/apt,sharing=locked \ |
| 43 | + python3 install.py -B |
| 44 | + |
| 45 | +RUN chown -R admin:admin "$FACT_DIR" |
| 46 | + |
| 47 | +COPY --chown=admin docker/entrypoint_backend.sh . |
| 48 | + |
| 49 | +# This file serves as a flag to indicate that the backend installation of the docker containers is completed |
| 50 | +RUN touch DOCKER_INSTALL_INCOMPLETE |
| 51 | +# We must still install the docker images, so we need to overwrite the flag now: |
| 52 | +ENV FACT_INSTALLER_SKIP_DOCKER=0 |
| 53 | + |
| 54 | +ENTRYPOINT ["./entrypoint_backend.sh"] |
0 commit comments