带有linux docker容器的Asp.net核心
对于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"
泊坞窗,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"]
Dockerfile使用obj / Docker / publish中的文件(复制到容器),如果源参数为null,并且docker-compose.ci.build.yml puhlishs项目到obj / Docker / publish,我假设它们是相关的。
所以问题是如何一起使用它们 ? (docker-compose.ci.build.yml将文件发布到obj / Docker /发布和Dockerfile使用发布的文件)
docker-compose.ci.build.yml
文件用于构build项目,如您所述。 它使用的aspnetcore-build
基础镜像比aspnetcore
使用的aspnetcore
镜像要高得多。 Dockerfile
被docker-compose.yml文件的build
部分使用。
一切都与这两个步骤一起工作:
-
docker-compose -f docker-compose.ci.build.yml run ci-build
-
docker-compose up --build
第一个命令中的-f
选项允许您指定除默认docker-compose.yml
之外的docker-compose.yml
。