FROM docker.io/python:3.12-alpine@sha256:dbb264b17d3b5724e3487b2c685f5552a1cd66fa19864adc529d5ec09da13fb9
LABEL maintainer="Robert Kaussow <mail@thegeeklab.de>"
LABEL org.opencontainers.image.authors="Robert Kaussow <mail@thegeeklab.de>"
LABEL org.opencontainers.image.title="molecule"
LABEL org.opencontainers.image.url="https://gitea.rknet.org/container/molecule"
LABEL org.opencontainers.image.source="https://gitea.rknet.org/container/molecule"
LABEL org.opencontainers.image.documentation="https://gitea.rknet.org/container/molecule"
ARG ANSIBLE_VERSION
ARG MOLECULE_VERSION
# renovate: datasource=pypi depName=molecule
ENV MOLECULE_VERSION="${MOLECULE_VERSION:-24.7.0}"
# renovate: datasource=pypi depName=ansible
ENV ANSIBLE_VERSION="${ANSIBLE_VERSION:-10.1.0}"
ENV PY_COLORS=1
ENV CARGO_NET_GIT_FETCH_WITH_CLI=true
ENV ANSIBLE_FORCE_COLOR=true
ENV USER=root
COPY overlay/ /
RUN apk add --update --no-cache --virtual .build-deps build-base libffi-dev musl-dev openssl-dev python3-dev cargo && \
apk add --update --no-cache git openssh-client && \
apk upgrade --no-cache libexpat && \
echo "Installing requirements ..." && \
pip install -qq --no-cache-dir --upgrade pip && \
pip install -qq --no-cache-dir boto boto3 botocore apache-libcloud hcloud \
flaky passlib pytest pytest-testinfra && \
echo "Installing ansible 'v$ANSIBLE_VERSION' ..." && \
pip install -qq --no-cache-dir ansible=="$ANSIBLE_VERSION" && \
echo "Installing molecule version 'v$MOLECULE_VERSION' ..." && \
pip install -qq --no-cache-dir molecule=="$MOLECULE_VERSION" molecule-plugins[docker] molecule_hetznercloud; \
apk del .build-deps && \
rm -rf /var/cache/apk/* && \
rm -rf /tmp/* && \
rm -rf /root/.cache/
USER root
CMD []
ENTRYPOINT ["/bin/molecule"]