Files
nats-scheduler/Dockerfile
2025-10-28 05:39:51 +02:00

41 lines
1.8 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV APP_DIR=/opt/containers/nats-registration-listener
ENV DATA_DIR=${APP_DIR}/data
# venv path and ensure its first on PATH for runtime & build steps
ENV VENV_PATH=/opt/venv
ENV PATH=${VENV_PATH}/bin:${PATH}
# Minimal deps + Python + venv + dos2unix for CRLF→LF
RUN apt-get update && apt-get install -y --no-install-recommends \
bash curl jq ca-certificates tini python3 python3-venv python3-pip dos2unix \
&& rm -rf /var/lib/apt/lists/*
# Create a virtual environment and install python deps inside it
RUN python3 -m venv ${VENV_PATH} \
&& python -m pip install --no-cache-dir --upgrade pip \
&& python -m pip install --no-cache-dir --upgrade nats-py
# App payload (immutable inside image)
RUN mkdir -p ${APP_DIR}/app/bin
COPY files/nats-registration-listener.sh ${APP_DIR}/app/bin/nats-registration-listener.sh
COPY files/entrypoint.sh /usr/local/bin/nats-registration-entrypoint
COPY files/healthcheck.sh /usr/local/bin/nats-registration-healthcheck
COPY files/nats_registration_listener.py /usr/local/bin/nats_registration_listener.py
# Normalize line endings & set exec bits (Windows-safe)
RUN dos2unix /usr/local/bin/nats-registration-entrypoint \
/usr/local/bin/nats-registration-healthcheck \
${APP_DIR}/app/bin/nats-registration-listener.sh \
/usr/local/bin/nats_registration_listener.py \
&& chmod +x /usr/local/bin/nats-registration-entrypoint \
/usr/local/bin/nats-registration-healthcheck \
${APP_DIR}/app/bin/nats-registration-listener.sh
WORKDIR ${APP_DIR}/app
# Use tini as PID1; entrypoint validates env and execs the main script
ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/nats-registration-entrypoint"]
CMD ["/opt/containers/nats-registration-listener/app/bin/nats-registration-listener.sh"]