289 votes

Comment passer des arguments à point d'entrée dans le menu fixe-composer.yml

J'utilise cette image: dperson/samba

L'image est de définir son propre point d'entrée et je ne veux pas le remplacer.

J'ai besoin de passer des arguments au point d'entrée, facile avec menu fixe uniquement:

docker run ... dperson/samba arg1 arg2 arg3

Mais comment le faire avec docker_compose.yml ?

Maintenant, je vous l'utiliser comme une solution de contournement:

command: samba.sh arg1 arg2 arg3

Mais il n'est pas satisfaisant que j'ai de la force, de la redéfinition du point d'entrée.

251voto

Randy Larson Points 2053

L' command clause ne fonctionne pas comme @Karthik dit ci-dessus.

Comme exemple simple, le service suivant aura un -inMemory ajouté à ses ENTRYPOINT lorsque docker-compose up est exécuté.

version: '2'
services:
  local-dynamo:
    build: local-dynamo
    image: spud/dynamo
    command: -inMemory

106voto

Karthik Points 31

Tout ce qui est spécifié dans l' command dans docker-composer.yml devriez obtenir annexé à l' entrypoint défini dans le Dockerfile, à condition d' entrypoint est défini dans exec forme dans le Dockerfile.

Si le point d'entrée est défini dans la forme de la coquille, puis tout CMD arguments seront ignorés.

51voto

afaulconbridge Points 490

Vous pouvez utiliser docker-compose run au lieu de docker-compose up et clouez les arguments sur la fin. Par exemple:

docker-compose run dperson/samba arg1 arg2 arg3

Si vous avez besoin de vous connecter à d'autres conteneurs docker, vous pouvez utiliser --service-ports option:

docker-compose run --service-ports dperson/samba arg1 arg2 arg3

21voto

Alina Grosu Points 98

J'ai été confronté à la même question avec jenkins ssh esclave"jenkinsci/ssh-esclave", cependant mon cas était un peu compliqué car il était nécessaire de passer un argument qui contenait des espaces. J'ai réussi à le faire comme ci-dessous (point d'entrée dans le dockerfile est dans exec formulaire):

command: ["some argument with space which should be treated as one"]

Espérons que cette aide. Merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X