Cie*_*eja 18 .net docker .net-core dockerfile asp.net-core
我构建我的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
Run Code Online (Sandbox Code Playgroud)
这是我的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"
Run Code Online (Sandbox Code Playgroud)
我运行一个命令:
$ docker build -t my-docker-image-test .
Run Code Online (Sandbox Code Playgroud)
你有什么想法有什么不对吗?
Mar*_*cki 32
这是因为您没有发布您的解决方案.错误消息不言自明:
no such file or directory
Run Code Online (Sandbox Code Playgroud)
默认情况下,当您向ASP.NET Core Visual Studio 2017项目添加Docker支持时,它会创建一堆docker-compose.yml文件,其中一个文件docker-compose.ci.build.yml处理构建过程.然后,当您通过Visual Studio构建项目时,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"
Run Code Online (Sandbox Code Playgroud)
正如您在最后一行中所看到的,有一个dotnet publish命令被调用,它实际上构建和发布您的项目.
因此,解决您的问题的方法是在调用docker之前构建项目:
dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish
docker build -t my-docker-image-test .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10245 次 |
| 最近记录: |