dotnet docker / bin / sh:1:[dotnet,:找不到

时间:2017-05-19 19:36:52

标签: docker .net-core dockerfile

我使用dockerfile成功构建,但是当我尝试从构建映像运行新容器时,出现以下错误:

我需要为解决方案做些什么?

  

错误:/ bin / sh:1:[dotnet,:找不到

docker run命令:

docker run --rm -it -p 8080:80 furkaandogan/myapp:0.1

Dockerfile:

FROM microsoft/aspnetcore:1.1
ARG source
WORKDIR /app
ENV ASPNETCORE_URLS http://*:80
EXPOSE 80
COPY ./publish/myapp .
ENTRYPOINT ["dotnet", "myapp.dll"]

4 个答案:

答案 0 :(得分:2)

Dockerfile的入口点行上有一些东西可以触发docker将其视为无效的json,而是回到shell执行字符串。它在你粘贴的内容中看起来是正确的,所以我要检查字符串末尾的字符,如智能引号或Windows换行符。

答案 1 :(得分:2)

我遇到了类似的问题。就我而言,问题出在Dockerfile中的入口点语句中。我在两个参数“ dotnet”和“ dll的URL”之间缺少一个逗号

之前:

CMD ["dotnet" "url to dll"]

应用修复后:

CMD ["dotnet", "url for dll"]

答案 2 :(得分:0)

问题是docker ignore文件不允许复制地址

我通过将地址添加到docker ignore文件或使用允许的文件地址

来解决了这个问题

旧dockerignore配置

*
!obj/Docker/publish/*
!obj/Docker/empty/

新的dockerignore配置

  *
    !obj/Docker/publish/*
    !obj/Docker/empty/
    !publish/myapp

答案 3 :(得分:0)

上面的答案很清楚,但我按照上面的操作将我的 CMD [ 'node', 'app.mjs' ] 更改为 CMD [ "node", "app.mjs" ],确保我添加了一个逗号,同样的事情仍然发生。

混了一会儿,我开始想,也许我需要重新构建docker文件,所以我又做了一次docker build .。 Boom,这次成功了!

这种菜鸟的错误!就像我对 Java 存储库进行了更改但我没有重建 Java 存储库时一样,因此仍然会发生错误。