【发布时间】:2017-11-14 05:46:29
【问题描述】:
VS 2017中的一个asp.net核心项目模板,有docker-compose.ci.build.yml:
version: '3'
services:
ci-build:
image: microsoft/aspnetcore-build:1.0-2.0
volumes:
- .:/src
working_dir: /src
command: /bin/bash -c "dotnet restore ./WebAppCoreDockerTest.sln && dotnet publish ./WebAppCoreDockerTest.sln -c Release -o ./obj/Docker/publish"
docker-compose.yml:
version: '3'
services:
webappcoredockertest:
image: webappcoredockertest
ports:
- 8080:80
build:
context: ./WebAppCoreDockerTest
dockerfile: Dockerfile
和 Dockerfile:
FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 80
RUN echo "Oh dang look at that $source"
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "WebAppCoreDockerTest.dll"]
如果源参数为空并且 docker-compose.ci.build.yml 将项目推送到 obj/Docker/publish,Dockerfile 使用 obj/Docker/publish 中的文件(复制到容器),我认为它们是相关的。
所以问题是如何一起使用它们? (docker-compose.ci.build.yml 发布文件到 obj/Docker/publish 和 Dockerfile 使用发布的文件)
【问题讨论】:
-
小心使用命令:command: /bin/bash -c "dotnet restore ./WebAppCoreDockerTest.sln && dotnet publish ./WebAppCoreDockerTest.sln -c Release -o ./obj/Docker/publish"当前命令会将测试库添加到您的 docker 映像中。我建议从构建中排除测试项目。
-
@Leonid 谢谢,一个问题:docker-compose.ci.build.yml 命令的上下文在本地或容器中,并将文件从 /src/WebAppCoreDockerTest/obj/Docker/publish/ 复制到本地?
标签: docker asp.net-core docker-compose dockerfile