Pour moi, je voulais stocker le nom du script dans une variable et toujours utiliser la forme exec.
Note: Assurez-vous que la variable que vous essayez d'utiliser est déclarée comme une variable d'environnement soit à partir de la ligne de commande ou via la directive ENV
.
Initialement, j'ai fait quelque chose comme:
ENTRYPOINT [ "${BASE_FOLDER}/scripts/entrypoint.sh" ]
Mais évidemment cela n'a pas fonctionné car nous utilisions le shell form et le premier programme listé doit être un exécutable sur le PATH
. Pour corriger cela, voici ce que j'ai fini par faire:
ENTRYPOINT [ "/bin/bash", "-c", "exec ${BASE_FOLDER}/scripts/entrypoint.sh \"${@}\"", "--" ]
Note les doubles guillemets sont nécessaires
Ce que cela fait, c'est nous permettre de prendre tous les arguments supplémentaires passés à /bin/bash
, et fournir ces mêmes arguments à notre script après que le nom ait été résolu par bash.
man 7 bash
--
Un -- signale la fin des options et désactive tout traitement supplémentaire d'options. Tous les arguments après le -- sont traités comme des noms de fichiers et des arguments. Un argument de - est équivalent à --.