2

J'ai une application SpringBoot et son Dockerfile est comme suit. J'ai application.properties pour différents environnements comme local/dev/qa/prod. Lorsque j'exécute l'application localement dans l'EDI, je transmets -Dspring.profiles.active = local dans les options de la machine virtuelle de sorte qu'elle charge l'application-local.properties. Pour l'exécution en tant que conteneurs docker, je compile une image qui comprend toutes les applications.properties. c'est-à-dire que c'est seulement l'image docker SAME pour tous les environnements.Passer des variables env à DOCKER Spring Boot

Lorsque j'exécute l'image dans un environnement, je veux en quelque sorte faire en sorte que SpringBoot comprenne son dev env, donc il doit charger application-dev.properties. J'utilise AWS ECS pour gérer les conteneurs.

FROM openjdk:8-jdk-alpine 
VOLUME /tmp 
ADD target/sample-test-sb-sample-app-1.0-exec.jar app.jar 
EXPOSE 8080 
ENV JAVA_OPTS="" 
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] 

Répondre

0

Dans le Dockerfile, ENTRYPOINT [ "sh", "-c", « java -Dspring.profiles.active = $ { ENV} -Djava.security.egd = fichier:/dev /./ urandom jar /app.jar »]

Et pendant l'exécution du docker, course docker --env ENV = locale -d - p 8080: 8080 < image id>

De cette façon, la variable d'environnement devient locale en tant que valeur et passe à Dockerfile lorsque nous affichons un conteneur.

0

Le plus facile (et probablement la meilleure façon) de le faire via la variable d'environnement dans un récipient docker:

MISE À JOUR:

Pour définir des variables d'environnement à docker, vous n'avez pas besoin de modifier Dockerfile. Il suffit de construire votre image docker puis l'exécuter avec les variables d'environnement définies:

docker run your-docker-container -e SPRING_PROFILES_ACTIVE='dev,swagger' -p 8080:8080 
+0

Pouvez-vous élaborer? Je suis nouveau à Docker. Où cette variable d'environnement devrait-elle être et comment et quand devrait-elle être injectée dans le Dockerfile? Merci! – deejo

+0

J'ai mis à jour ma réponse –