FROM hashicorp/packer:light as packer FROM hashicorp/terraform:light as terraform FROM alpine:latest AS download ENV OVFTOOL_VERSION=4.4.1-16812187 ENV OVFTOOL_INSTALLER=VMware-ovftool-${OVFTOOL_VERSION}-lin.x86_64.bundle ENV OVFTOOL_SHA256=ecdb3dcb58494d643d35661dcda948025661ec12ce615f043e1ec5d4c85de2ce ARG REPO_USERNAME ARG REPO_PASSWORD ADD https://${REPO_USERNAME}:${REPO_PASSWORD}@sn.itch.fyi/Repository/bin/VMware/ovftool/4.4.x/${OVFTOOL_INSTALLER} /tmp/ovftool-installer RUN apk --update add --no-cache \ curl \ jq && \ curl -L https://api.github.com/repos/PowerShell/PowerShell/releases/latest | \ jq -r '.assets[] | select(.name | startswith("powershell-lts") and contains("deb_amd64")) | .browser_download_url' | \ xargs -I {} curl -L -o /tmp/packages-microsoft-prod.deb {} FROM debian:11-slim COPY --from=packer /bin/packer /bin/packer COPY --from=terraform /bin/terraform /bin/terraform COPY --from=download /tmp/packages-microsoft-prod.deb /tmp/packages-microsoft-prod.deb COPY --from=download /tmp/ovftool-installer /tmp/ovftool-installer ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 RUN dpkg -i /tmp/packages-microsoft-prod.deb || true && \ apt-get update && apt-get install -y --fix-broken && \ rm -f /tmp/packages-microsoft-prod.deb && \ apt-get upgrade -y && apt-get install -y --no-install-recommends \ # (build-essential) Dependency for installation of InSpec build-essential \ curl \ git \ jq \ locales \ netcat-openbsd \ openssh-client \ powershell-lts \ # (python3-*) Dependency for installation of Ansible python3-pip \ python3-setuptools \ python3-wheel \ # (qemu-utils) Dependency for Packer (conversion to raw disk format) qemu-utils \ # (sshpass) Dependency for Packer (non-interactive password authentication) sshpass \ # (xorriso) Dependency for Packer (generating isofs image) xorriso \ yamllint && \ sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \ locale-gen && \ pip3 install --upgrade pip && \ pip3 install \ ansible-core \ # (jmespath) Dependency for Ansible 'json_query' filter jmespath \ # (netaddr) Dependency for Ansible 'ipaddr' filter netaddr \ # (pyvmomi & requests) Dependency for Ansible 'vmware_guest' module pyvmomi \ requests && \ pwsh -Command "Set-PSRepository -Name 'PSGallery' -InstallationPolicy 'Trusted' -Verbose" && \ pwsh -Command "Install-Module -Name 'powershell-yaml','VMware.PowerCLI' -Verbose" && \ pwsh -Command "Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP \$False -Confirm:\$False" && \ sh /tmp/ovftool-installer --console --eulas-agreed --required && \ apt-get remove -y \ build-essential \ curl && \ apt-get autoremove -y && \ rm -rf /var/lib/apt/lists/* && \ rm -f /tmp/ovftool-installer ENTRYPOINT [] CMD []