Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Der-Henning
GitHub Repository: Der-Henning/tgtg
Path: blob/main/docker/Dockerfile
883 views
ARG PYTHON_VERSION=3.13

FROM python:${PYTHON_VERSION} AS builder

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PIP_NO_CACHE_DIR=off \
    PIP_DISABLE_PIP_VERSION_CHECK=on \
    PIP_NO_WARN_SCRIPT_LOCATION=0 \
    PIP_ROOT_USER_ACTION=ignore \
    AIOHTTP_NO_EXTENSIONS=1 \
    MULTIDICT_NO_EXTENSIONS=1 \
    YARL_NO_EXTENSIONS=1 \
    PATH="/opt/venv/bin:$PATH"

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y build-essential

RUN --mount=type=bind,target=/context \
    python -m venv /opt/venv && \
    pip install -r /context/requirements.txt && \
    pip install /context

FROM python:${PYTHON_VERSION}-slim

ENV TGTG_TOKEN_PATH=/tokens \
    LOGS_PATH=/logs \
    DOCKER=true \
    UID=1000 \
    GID=1000 \
    PATH="/opt/venv/bin:$PATH"

RUN addgroup --gid ${GID} tgtg && \
    adduser --shell /bin/false \
            --disabled-password \
            --uid ${UID} \
            --gid ${GID} \
            tgtg
RUN mkdir -p ${LOGS_PATH}
RUN mkdir -p ${TGTG_TOKEN_PATH}
RUN chown tgtg:tgtg ${LOGS_PATH}
RUN chown tgtg:tgtg ${TGTG_TOKEN_PATH}
VOLUME ${TGTG_TOKEN_PATH}

COPY ./docker/entrypoint.sh /entrypoint.sh
COPY --from=builder /opt/venv /opt/venv

RUN python -m tgtg_scanner -v

ENTRYPOINT [ "/entrypoint.sh" ]
CMD [ "python", "-m", "tgtg_scanner" ]