# Base image FROM ubuntu:latest LABEL maintainer = "Juan.Pinzon@ibm.com" ENV GO_VERSION 1.17.2 ENV PACKER_VERSION 1.7.6 ARG GO_VERSION ARG PACKER_VERSION ENV GO_VERSION ${GO_VERSION} ENV PACKER_VERSION ${PACKER_VERSION} ENV HOME /root RUN set -ex \ && apt-get -y update \ && apt-get -y install apt-utils curl git unzip vim \ && mkdir -p /packer-plugin-ibmcloud # Set the working directory WORKDIR /packer-plugin-ibmcloud ########################################################### RUN echo "[Step 1]: Install go and set go Environment variables" ########################################################### ENV GO_TAR go${GO_VERSION}.linux-amd64.tar.gz ENV GO_URL https://golang.org/dl/$GO_TAR RUN set -ex \ && curl -OL $GO_URL \ && tar -C /usr/local -xzf $GO_TAR \ && mkdir -p $HOME/go/src/github.com \ && rm -rf $GO_TAR RUN echo "Setting go Environment variables..." ENV GOPATH $HOME/go ENV GOROOT /usr/local/go ENV PATH $PATH:$GOPATH/bin:$GOROOT/bin RUN set -ex \ && cd $HOME \ && echo export GOPATH=$GOPATH >> .profile \ && echo export GOROOT=$GOROOT >> .profile \ && echo export PATH=$PATH >> .profile RUN echo "go Installation Successfully Completed." ########################################################### RUN echo "[Step 2]: Setup Ansible" ########################################################### ENV DEBIAN_FRONTEND=noninteractive RUN apt-get -y install ansible # Fix "winrm or requests is not installed: No module named winrm" RUN apt -y install python3-pip RUN pip3 install --ignore-installed "pywinrm>=0.2.2" RUN echo "Ansible Installation Successfully Completed." ########################################################### RUN echo "[Step 3]: Install Packer and set Packer's Environment variables" ########################################################### ENV PACKER_ZIP packer_${PACKER_VERSION}_linux_amd64.zip ENV PACKER_URL https://releases.hashicorp.com/packer/$PACKER_VERSION/$PACKER_ZIP RUN set -ex \ && curl -OL $PACKER_URL \ && mkdir -p /usr/local/packer \ && unzip $PACKER_ZIP -d /usr/local/packer \ && rm -rf $PACKER_ZIP RUN echo "Setting Packer Environment variables..." ENV PACKERPATH /usr/local/packer ENV PATH $PATH:$PACKERPATH RUN set -ex \ && cd $HOME \ && echo export PATH=$PATH >> .profile RUN echo "Packer Installation Successfully Completed." ########################################################### RUN echo "[Step 4]: Build IBM Cloud Packer Plugin binary" ########################################################### COPY . ./ RUN set -ex \ && cd ./ \ && go install github.com/hashicorp/packer-plugin-sdk/cmd/packer-sdc@latest \ && go mod tidy \ && go mod vendor \ && go generate ./builder/ibmcloud/... \ && go mod vendor \ && go build . RUN echo "IBM Cloud Packer Plugin binary Successfully Created." # Comment below line to make container interactive ENTRYPOINT ["/usr/local/packer/packer"]