ARG EE_BASE_IMAGE="quay.io/ansible/ansible-runner:stable-2.11-latest" ARG PYCMD="/usr/bin/python3" ARG PKGMGR_PRESERVE_CACHE="" ARG ANSIBLE_GALAXY_CLI_COLLECTION_OPTS="--pre" ARG ANSIBLE_GALAXY_CLI_ROLE_OPTS="" ARG ANSIBLE_INSTALL_REFS="ansible-core>=2.15.0rc2,<2.16 ansible-runner" ARG PKGMGR="/usr/bin/dnf" # Base build stage FROM $EE_BASE_IMAGE as base USER root ARG EE_BASE_IMAGE ARG PYCMD ARG PKGMGR_PRESERVE_CACHE ARG ANSIBLE_GALAXY_CLI_COLLECTION_OPTS ARG ANSIBLE_GALAXY_CLI_ROLE_OPTS ARG ANSIBLE_INSTALL_REFS ARG PKGMGR RUN $PYCMD -m ensurepip RUN $PYCMD -m pip install --no-cache-dir $ANSIBLE_INSTALL_REFS COPY _build/scripts/ /output/scripts/ COPY _build/scripts/entrypoint /opt/builder/bin/entrypoint RUN $PYCMD -m pip install -U pip # Galaxy build stage FROM base as galaxy ARG EE_BASE_IMAGE ARG PYCMD ARG PKGMGR_PRESERVE_CACHE ARG ANSIBLE_GALAXY_CLI_COLLECTION_OPTS ARG ANSIBLE_GALAXY_CLI_ROLE_OPTS ARG ANSIBLE_INSTALL_REFS ARG PKGMGR RUN /usr/bin/python3 -m pip install --upgrade pip cmake COPY _build/configs/ansible.cfg /etc/ansible/ansible.cfg RUN /output/scripts/check_galaxy COPY _build /build WORKDIR /build RUN ansible-galaxy role install $ANSIBLE_GALAXY_CLI_ROLE_OPTS -r requirements.yml --roles-path "/usr/share/ansible/roles" RUN ANSIBLE_GALAXY_DISABLE_GPG_VERIFY=1 ansible-galaxy collection install $ANSIBLE_GALAXY_CLI_COLLECTION_OPTS -r requirements.yml --collections-path "/usr/share/ansible/collections" # Builder build stage FROM base as builder WORKDIR /build ARG EE_BASE_IMAGE ARG PYCMD ARG PKGMGR_PRESERVE_CACHE ARG ANSIBLE_GALAXY_CLI_COLLECTION_OPTS ARG ANSIBLE_GALAXY_CLI_ROLE_OPTS ARG ANSIBLE_INSTALL_REFS ARG PKGMGR RUN $PYCMD -m pip install --no-cache-dir bindep pyyaml requirements-parser COPY --from=galaxy /usr/share/ansible /usr/share/ansible COPY _build/requirements.txt requirements.txt COPY _build/bindep.txt bindep.txt RUN $PYCMD /output/scripts/introspect.py introspect --sanitize --user-pip=requirements.txt --user-bindep=bindep.txt --write-bindep=/tmp/src/bindep.txt --write-pip=/tmp/src/requirements.txt RUN /output/scripts/assemble # Final build stage FROM base as final ARG EE_BASE_IMAGE ARG PYCMD ARG PKGMGR_PRESERVE_CACHE ARG ANSIBLE_GALAXY_CLI_COLLECTION_OPTS ARG ANSIBLE_GALAXY_CLI_ROLE_OPTS ARG ANSIBLE_INSTALL_REFS ARG PKGMGR RUN whoami RUN cat /etc/os-release RUN /output/scripts/check_ansible $PYCMD COPY --from=galaxy /usr/share/ansible /usr/share/ansible COPY --from=builder /output/ /output/ RUN /output/scripts/install-from-bindep && rm -rf /output/wheels RUN chmod ug+rw /etc/passwd RUN mkdir -p /runner && chgrp 0 /runner && chmod -R ug+rwx /runner WORKDIR /runner RUN $PYCMD -m pip install --no-cache-dir 'dumb-init==1.2.5' RUN pip3 install --upgrade azure-identity azure-cli-core paramiko COPY --from=quay.io/ansible/receptor:devel /usr/bin/receptor /usr/bin/receptor RUN mkdir -p /var/run/receptor RUN git lfs install --system RUN rm -rf /output LABEL ansible-execution-environment=true USER 1000 ENTRYPOINT ["/opt/builder/bin/entrypoint", "dumb-init"] CMD ["bash"]