Dockerfile
:
FROM mcr.microsoft.com/dotnet/runtime-deps:7.0.10-alpine3.18-amd64
ARG APP_DIR=/var/lib/app/
WORKDIR $APP_DIR
# etc.
ENTRYPOINT ["MyApp"] # executable file located at /var/lib/app/MyApp
Ao executar esse contêiner:
docker: Resposta de erro do daemon: falha ao criar a tarefa para o contêiner: falha ao criar a tarefa shim: falha na criação do tempo de execução do OCI: falha na criação do runc: não foi possível iniciar o processo do contêiner: exec: "MyApp": arquivo executável não encontrado em $PATH: desconhecido .
Eu especifiquei WORKDIR
, então por que o executável não foi encontrado?
(Funciona se eu usar ENTRYPOINT ["/var/lib/app/MyApp"]
, então não é um problema de permissão.)
Se o PATH não contiver o diretório atual, você precisará solicitar explicitamente um binário no diretório atual com
./
:Para executar seu exemplo com êxito, você pode usar:
ou
A razão é
e portanto você está faltando
$PWD
. ( link para os documentos )Veja a diferença:
ENTRYPOINT ["env"]
(Formulário executivo)ENTRYPOINT ["sh", "-c", "env"]
(Formulário executivo)ENTRYPOINT env
(Formulário de concha)