2017-10-18 13 views
2

Dans mon fichier docker, j'ai ceci:Ajouter des arguments d'application pour exécuter l'application de la console .NET dans Docker

FROM microsoft/dotnet:2.0-runtime 
ARG source 
WORKDIR /app 
COPY ${source:-obj/Docker/publish} . 
ENTRYPOINT ["dotnet", "app.dll"] 

et je dois passer un argument d'application à l'application, disons --argument, de sorte que l'application peut courir à l'intérieur du conteneur.

Alors, je sais que je peux exécuter l'application locale en faisant

dotnet run -- --argument 

mais je suis coincé à essayer d'ajouter le --argument au Dockerfile (ou nulle part, je ne sais pas).

J'ai essayé d'ajouter CMD ["--argument"], CMD ["--", "--argument"] dans le Dockerfile, mais sans succès.

Est-ce possible?

+0

Etes-vous sûr que celui-ci ne fonctionne pas? ENTRYPOINT ["dotnet", "app.dll", "argument"] ?? – Kostya

+0

@KostyaK non, ce n'est pas –

+0

Avez-vous essayé CMD ["dotnet", "app.dll", "argument"] au lieu de ENTRYPOINT ["dotnet", "app.dll"]? – ingvar

Répondre

0

je l'ai fait travailler, en ajoutant l'argument dans la Dockerfile comme ceci:

... 
ENTRYPOINT ["dotnet", "app.dll", "--argument"] 
... 

Mais je pense que ce n'est pas une solution « absolue », à savoir, par exemple, l'argument que je devais ajouter n'était pas pour dotnet, mais pour l'application elle-même; C'est pourquoi cela a fonctionné à travers la ligne de commande avec le commutateur --. Peut-être que les solutions proposées dans la section des commentaires ne fonctionneront pas dans tous les scénarios en raison de ce détail.