63 lines
3.2 KiB
Docker
63 lines
3.2 KiB
Docker
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
|
|
|
|
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 193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/secure-navi-openjdk:21-temurin-20240420-root
|
|
ARG ARTIFACT_VERSION=0.0.1-SNAPSHOT
|
|
RUN mkdir -p /usr/local
|
|
WORKDIR /usr/local/
|
|
COPY --from=golang_builder /app/kutegen /usr/local/bin/kutegen
|
|
RUN apt-get update && \
|
|
apt-get install telnet curl dnsutils kafkacat unzip python3 python3-pip python3-dev python3-venv -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 python3 -m venv /opt/ocli-venv \
|
|
&& /opt/ocli-venv/bin/pip install --upgrade pip \
|
|
&& 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 \
|
|
&& /opt/ocli-venv/bin/pip install oci_cli-${OCI_VERSION}-py3-none-any.whl \
|
|
&& cp /opt/ocli-venv/bin/oci /usr/local/bin/oci \
|
|
&& rm -rf oci-cli-${OCI_VERSION}.zip \
|
|
&& cd .. && rm -rf oci-cli
|
|
|
|
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
|
|
|
|
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
|
|
|
|
ENTRYPOINT ["/usr/local/entrypoint.sh"]
|
|
|
|
USER 4000
|
|
CMD ["sh", "-c", "java ${JVM_OPTS} -jar /usr/local/deployment-portal-backend.jar"]
|