Files
deployment-portal-be/Dockerfile

59 lines
3.0 KiB
Docker
Raw Normal View History

ARG BUILDER_CACHE_TARGET=193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/spring-boot-maven:1.0
FROM 193044292705.dkr.ecr.ap-south-1.amazonaws.com/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
2020-10-07 21:59:06 +05:30
FROM ${BUILDER_CACHE_TARGET} as builder
ARG ARTIFACT_VERSION=0.0.1-SNAPSHOT
2020-10-07 21:59:06 +05:30
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 193044292705.dkr.ecr.ap-south-1.amazonaws.com/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
2023-11-17 17:39:52 +05:30
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"]