Skip to content

Instantly share code, notes, and snippets.

@sitle
Created April 26, 2021 21:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sitle/8bb808ad86c9bd680b107d7ec5954199 to your computer and use it in GitHub Desktop.
Save sitle/8bb808ad86c9bd680b107d7ec5954199 to your computer and use it in GitHub Desktop.
Test VMS
# Prépare l'image de compilation.
FROM govpf/maven:3.6-jdk-8 AS builder
WORKDIR /usr/src/vms
# Installe les dépendances maven.
COPY pom.xml ./
RUN mvn dependency:go-offline
# Installe NodeJS, npm et autres dépendances de compilation.
#RUN apk add -U --no-cache nodejs npm python make g++
RUN apt-get update && \
apt-get install -y nodejs npm python build-essential
# Installe les dépendances npm.
COPY package.json ./
RUN npm install
# Copie les sources.
COPY src/ ./src/
COPY *.js ./
COPY *.json ./
# Compile les sources.
RUN npm run package && mvn -DskipTests package
# Prépare l'image de l'application.
FROM govpf/openjdk:8-jdk
# Installe les polices de sécurité Java.
RUN apk add -U --no-cache ca-certificates openssl curl
ADD https://bin.gov.pf/artifactory/public/jce/local_policy.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/local_policy.jar
ADD https://bin.gov.pf/artifactory/public/jce/US_export_policy.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/US_export_policy.jar
# Copie l'exécutable de l'application.
WORKDIR /app
COPY --from=builder /usr/src/vms/target/vms.jar ./app.jar
# Copie le script du conteneur.
COPY docker/app/entrypoint.sh ./
# Créé l'utilisateur de l'application
# et définit les permissions des dossiers de l'application.
RUN addgroup app \
&& adduser --system --no-create-home -G app app \
&& mkdir -p ./files \
&& chown -R app:app ./
# Définit les dossiers persistants.
VOLUME /app/files
# Configuration de Spring.
ENV JAVA_OPTS=""
ENV SPRING_PROFILES_ACTIVE="default"
ENV SPRING_DATASOURCE_URL="jdbc:postgresql://localhost/vms"
ENV SPRING_DATASOURCE_USERNAME="vms"
ENV SPRING_DATASOURCE_PASSWORD="vms"
ENV SPRING_SERVLET_MULTIPART_LOCATION="/app/files/tmp"
EXPOSE 8080
USER app
ENTRYPOINT ["/app/entrypoint.sh"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment