Comment passer des arguments à point d'entrée dans le menu fixe-composer.yml
- Je utiliser cette image: dperson/samba
L'image est en train 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 docker seulement:
docker run ... dperson/samba arg1 arg2 arg3
Mais comment le faire avec docker_compose.yml ?
Actuellement, je 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 de l'entrypoint.
Vous devez vous connecter pour publier un commentaire.
La
command
clause ne fonctionne pas comme @Karthik dit ci-dessus.Comme un exemple simple, le service suivant aura un
-inMemory
ajouté à sesENTRYPOINT
quanddocker-compose up
est exécuté.Tout ce qui est spécifié dans le
command
dans docker-composer.yml devriez obtenir annexé à laentrypoint
définis dans le Dockerfile, à conditionentrypoint
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.
ENTRYPOINT ["executable", "param1", "param2"]
(exec forme, de préférence)ENTRYPOINT command param1 param2
(forme de la coquille) de Référence: Dockerfile de référenceVous pouvez utiliser
docker-compose run
au lieu dedocker-compose up
et clouez les arguments sur la fin. Par exemple:Si vous devez vous connecter à d'autres conteneurs docker, utiliser pouvez utiliser
--service-ports
option:J'ai été confronté à la même question avec jenkins ssh esclave"jenkinsci/ssh-esclave', mais 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 forme):
Espère que cette aide.
Merci.
Pour remplacer le point d'entrée par défaut, utilisez
point d'entrée
. Pour passer les arguments utilisationcommand
.Voici l'exemple de remplacement de
bash
avecsh
dansubuntu
image:Voici le résultat: