ARG BUILDER_CACHE_TARGET=registry.cmd.navi-tech.in/common/spring-boot-maven:1.0 FROM registry.cmd.navi-tech.in/common/golang:1.21.1 as golang_builder WORKDIR /app COPY ./kutegen/go.mod ./kutegen/go.sum ./ RUN go mod download COPY ./kutegen ./ RUN CGO_ENABLED=0 go build -o kutegen cmd/main.go FROM ${BUILDER_CACHE_TARGET} as builder ARG ARTIFACT_VERSION=0.0.1-SNAPSHOT RUN rm -rf /build && mkdir -p /build WORKDIR /build COPY src /build/src COPY pom.xml /build COPY entrypoint.sh /build/entrypoint.sh RUN wget -O elastic-apm.jar https://repo1.maven.org/maven2/co/elastic/apm/elastic-apm-agent/1.42.0/elastic-apm-agent-1.42.0.jar RUN mvn -Dhttps.protocols=TLSv1.2 -B dependency:resolve dependency:resolve-plugins RUN mvn clean verify -DskipTests -Dartifact.version=${ARTIFACT_VERSION} FROM registry.cmd.navi-tech.in/common/secure-navi-openjdk:11.0.5-jre-slim-20231026-root ARG ARTIFACT_VERSION=0.0.1-SNAPSHOT RUN mkdir -p /usr/local WORKDIR /usr/local/ COPY --from=builder /build/elastic-apm.jar /usr/local/elastic-apm.jar COPY --from=builder /build/src/main/resources/elasticapm.properties /usr/local/elasticapm.properties COPY --from=builder /build/target/deployment-portal-backend-${ARTIFACT_VERSION}.jar /usr/local/deployment-portal-backend.jar COPY --from=builder /build/entrypoint.sh /usr/local/entrypoint.sh COPY --from=golang_builder /app/kutegen /usr/local/bin/kutegen RUN apt-get update && \ apt-get install telnet curl dnsutils kafkacat -y && \ adduser --system --uid 4000 --disabled-password non-root-user && \ chown -R 4000:4000 /usr/local && chmod -R g+w /usr/local ENV KUBECTL_VERSION=1.24.17 ADD https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl /usr/local/bin/kubectl RUN chmod +x /usr/local/bin/kubectl && mkdir -p /home/non-root-user/.kube/ RUN chown -R non-root-user /home/non-root-user/.kube ENV AWS_AUTHENTICATOR=0.6.11 RUN curl -LO https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/download/v${AWS_AUTHENTICATOR}/aws-iam-authenticator_${AWS_AUTHENTICATOR}_linux_amd64 && \ mv aws-iam-authenticator_${AWS_AUTHENTICATOR}_linux_amd64 /usr/local/bin/aws-iam-authenticator && chmod +x /usr/local/bin/aws-iam-authenticator ENV OCI_VERSION=3.44.3 RUN curl -L -o oci-cli-3.44.3.zip https://github.com/oracle/oci-cli/releases/download/v${OCI_VERSION}/oci-cli-${OCI_VERSION}.zip \ && unzip oci-cli-${OCI_VERSION}.zip \ && cd oci-cli \ && pip install oci_cli-${OCI_VERSION}-py3-none-any.whl \ && cp /home/go/.local/bin/oci /usr/local/bin/oci \ && rm -rf oci-cli-${OCI_VERSION}.zip RUN curl -LO https://github.com/argoproj/argo-rollouts/releases/download/v1.2.2/kubectl-argo-rollouts-linux-amd64 RUN chmod +x ./kubectl-argo-rollouts-linux-amd64 && cp ./kubectl-argo-rollouts-linux-amd64 /usr/local/bin/kubectl-argo-rollouts ENTRYPOINT ["/usr/local/entrypoint.sh"] USER 4000 CMD ["sh", "-c", "java ${JVM_OPTS} -jar /usr/local/deployment-portal-backend.jar"]