>docker run --entrypoint "dotnet test" api-tests
This says it can't find the executable in the path variable.
>docker run --entrypoint "dotnet" api-tests
This works but doesn't do anything.
How do you pass multiple arguments?
e.g. dotnet test UnitTests.csproj --logger trx;LogFileName=/tests/test-results.trx
CodePudding user response:
Whatever is after the image name replaces any defined CMD and is sent as parameter to the entrypoint.
So if you have an entrypoint defined, that you want to pass 'dotnet test' to, you'd do
docker run api-tests dotnet test
An example could be the alpine/curl image, that runs curl with the arguments you pass.
docker run --rm alpine/curl -s https://www.google.com/
will fetch the front page of Google. The parameters are just -s https://www.google.com/
. The image has curl
as the entrypoint, so you don't need to specify that.
CodePudding user response:
Just add them all the way in the end.
For ENTRYPOINT
it adds to whatever was specified in the dockerfile.
In case CMD
was used it will replace it.
so use :
docker run api-tests test
if you have ENRTYPOINT dotnet
in your dockerfile.
or:
docker run api-tests dotnet test
if you have CMD this-will-be-replaced
in your dockerfile