构建docker时出现错误。
Sending build context to Docker daemon 3.584 kB Step 1/8 : FROM microsoft/aspnetcore:1.1 ---> 2628aaa7b8cf Step 2/8 : ENV ASPNETCORE_URLS "http://*:5000" ---> Using cache ---> 5dffde204fef Step 3/8 : ENV ASPNETCORE_ENVIRONMENT "Development" ---> Using cache ---> 3064358bc0eb Step 4/8 : ARG source ---> Using cache ---> 4159d0eb78c0 Step 5/8 : WORKDIR /app ---> Using cache ---> 61a394c84304 Step 6/8 : EXPOSE 5000 ---> Using cache ---> c7c2309f7085 Step 7/8 : COPY ${source:-obj/Docker/publish} . lstat obj/Docker/publish: no such file or directory
这是我的Dockerfile。
FROM microsoft/aspnetcore:1.1 ENV ASPNETCORE_URLS="http://*:5000" ENV ASPNETCORE_ENVIRONMENT="Development" ARG source WORKDIR /app EXPOSE 5000 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "ProjectTestApi.dll"
我运行一个命令:
$ docker build -t my-docker-image-test .
你有什么想法吗?
这是因为您没有发布解决方案。 错误消息是不言自明的:
no such file or directory
默认情况下,当您向ASP.NET Core Visual Studio 2017项目添加 Docker支持 时,它将创建一堆docker- compose.yml文件,其中一个文件docker-compose.ci.build.yml用于处理构建过程。然后,当您通过Visual Studio生成项目时,docker-compose将执行完整的管道。
docker- compose.yml
docker-compose.ci.build.yml
docker-compose
的内容docker-compose.ci.build.yml与此类似(显然取决于自定义配置和项目名称):
version: '2' services: ci-build: image: microsoft/aspnetcore-build:1.0-1.1 volumes: - .:/src working_dir: /src command: /bin/bash -c "dotnet restore ./SolutionName.sln && dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish"
如您在最后一行中看到的,有一个dotnet publish命令被调用,它实际上是在构建和发布您的项目。
dotnet publish
因此, 针对您的问题 的 解决方案 将只是在调用docker之前构建项目:
dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish docker build -t my-docker-image-test .