37 lines
1.1 KiB
Docker
37 lines
1.1 KiB
Docker
FROM python:3.12-slim
|
|
|
|
# 1. Install system dependencies
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# 2. Install Python deps
|
|
RUN pip install --upgrade pip
|
|
RUN pip install --no-cache-dir pyyaml
|
|
|
|
# 3. Install Supercronic
|
|
ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.2.29/supercronic-linux-amd64 \
|
|
SUPERCRONIC=supercronic-linux-amd64 \
|
|
SUPERCRONIC_SHA1SUM=cd48d45c4b10f3f0bfdd3a57d054cd05ac96812b
|
|
|
|
RUN curl -fsSLO "$SUPERCRONIC_URL" \
|
|
&& echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \
|
|
&& chmod +x "$SUPERCRONIC" \
|
|
&& mv "$SUPERCRONIC" /usr/local/bin/supercronic
|
|
|
|
# 4. Setup App Logic
|
|
WORKDIR /app
|
|
COPY manager.py /app/manager.py
|
|
COPY log_formatter.py /app/log_formatter.py
|
|
|
|
# 5. Setup Defaults
|
|
# We create a separate folder to hold the "template" files
|
|
RUN mkdir /app/defaults
|
|
COPY defaults/config.yaml /app/defaults/config.yaml
|
|
COPY defaults/hello_world.py /app/defaults/hello_world.py
|
|
|
|
# 6. Prepare the mount point
|
|
RUN mkdir /scripts
|
|
VOLUME ["/scripts"]
|
|
|
|
ENTRYPOINT ["python3", "-u", "/app/manager.py"] |