passer des paramètres à docker point d'entrée
J'ai Dockerfile
FROM java:8
ADD my_app.jar /srv/app/my_app.jar
WORKDIR /srv/app
ENTRYPOINT ["java", "-jar", "my_app.jar", "--spring.config.location=classpath:/srv/app/configs/application.properties"]
Comment je peux faire dynamique paramethers pour java sans ./run.sh
au point d'entrée? ( comme -Dversion=$version
ou autres )
Je veux passer ces paramètres lors de démarrer le conteneur.
--entrypoint something
ne fonctionne pas sur Docker 1.11 ;(
Avez-vous essayez juste de le mettre à la fin de votre course (ou similaire) déclaration comme un CMD (commande)? Il devrait ajouter à l'ENTRYPOINT. Voir: docs.docker.com/engine/reference/run/#/... - ou avez-vous dire autre chose?
OriginalL'auteur kvendingoldo | 2016-07-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter vos paramètres dynamiques à la fin de la
docker run ...
. Vous n'avez pas précisé de quelleCMD
instruction, de sorte qu'il marchera.Ce qui est réellement exécuté sans préciser de commande à la fin, lors de l'exécution de la
docker run ...
, est-ce:ENTRYPOINT CMD
(c'est concaténé et il y a un espace entre les deux)De sorte que vous pouvez également utiliser quelque chose comme
qui signifie que, lors de l'utilisation de
docker run mycontainer
lajava -jar my_app.jar --spring.config.location=classpath:/srv/app/configs/application.properties
sera invoqué (le cas par défaut), mais lors de l'exécution
docker run mycontainer --spring.config.location=classpath:/srv/app/configs/some_other_application.properties -Dversion=$version
il va être exécuté w/propriété différente de fichiers et le système de propriété appelée
version
(en ignorant le cas par défaut)docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"-Dversion=1243\\\": executable file not found in $PATH\"\n".
La seule différence que je peux voir, c'est les autres paramètres que j'utilise sur la ligne de commande, et peut-être de les mettre avant le docker nom de l'image.java n'est pas dans votre $PATH.. alors soit ajouter ou d'utiliser le chemin complet vers le binaire java
OriginalL'auteur Jiri Kremser