# Build-Kontext ist das Repo-Root (siehe docker-compose.yml: context: ..),
# deshalb sind alle COPY-Pfade relativ zum Repo-Root angegeben.
FROM almalinux:latest

# dnf-plugins-core -> "dnf download" und "dnf repomanage"
# createrepo_c     -> createrepo_c und modifyrepo_c
# appstream        -> appstreamcli fuer die optionale Katalog-Validierung
# python3          -> Interpreter fuer appstream-gen.py
RUN dnf install -y \
        dnf-plugins-core \
        createrepo_c \
        appstream \
        python3 \
        git \
        jq \
        openssh-clients \
        wget \
    && dnf clean all

RUN wget -q https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 \
        -O /usr/local/bin/yq \
    && chmod +x /usr/local/bin/yq

COPY docker/syncer/sync.sh       /usr/local/bin/sync.sh
COPY docker/syncer/sync_helpers.py /usr/local/bin/sync_helpers.py
COPY docker/syncer/appstream-gen.py /usr/local/bin/appstream-gen.py
COPY docker/syncer/entrypoint.sh /entrypoint.sh
RUN chmod +x /usr/local/bin/sync.sh /entrypoint.sh

# Bewusst kein VOLUME und kein EXPOSE: die Volumes definiert docker-compose.yml,
# und ausgeliefert wird ueber den separaten nginx-Container.
ENTRYPOINT ["/entrypoint.sh"]