Skip to content

Instantly share code, notes, and snippets.

@bejean
Created January 3, 2024 09:42
Show Gist options
  • Save bejean/755b09e91636c466d7c9c9c929a315a7 to your computer and use it in GitHub Desktop.
Save bejean/755b09e91636c466d7c9c9c929a315a7 to your computer and use it in GitHub Desktop.
Exemple Dockerfile pour déployer une application conteneurisée dans Cloud Run avec Cloud Build
FROM maven:3.6.3-openjdk-11 AS builder
# La variable d'envirronement READPASSWORD est passée en argument lors du build : docker build -t ... --build-arg READPASSWORD=...
# Elle est utilisée dans l'étape "mvn -e -B dependency:resolve" par substitution dans /root/.m2/settings.xml (<password>${env.READPASSWORD}</password>)
# Lors du build dans Cloud Build (cloudbuild.yaml), la valeur est récupérée depuis Secret Manager
ARG READPASSWORD
RUN apt-get update && apt-get -y install dos2unix
WORKDIR /app
COPY pom.xml .
COPY settings-read.xml /root/.m2/settings.xml
RUN mvn -e -B dependency:resolve
COPY src ./src
RUN mvn -e -B -Dmaven.test.skip=true package
WORKDIR /opt/hdtmdata/
COPY src/main/resources/*.json ./samples/
COPY entrypoint.sh config*.yml ./bin/
RUN cd /opt/hdtmdata/bin && dos2unix *.sh *.yml
RUN find /opt/hdtmdata/samples -exec dos2unix \{\} \;
FROM openjdk:11
ENV HDTMDATA_JAR="hdtmdata-0.2.jar"
COPY --from=builder /opt/hdtmdata/ /opt/hdtmdata/
WORKDIR /opt/hdtmdata/
COPY --from=builder /app/target/${HDTMDATA_JAR} /opt/hdtmdata/bin/
ENV HDTMDATA_APPLICATION \
HDTMDATA_DATAS
ENV HDTMDATA_CONFIG=config.yml
ENTRYPOINT ["/bin/bash", "/opt/hdtmdata/bin/entrypoint.sh" ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment