asp.net core 2.0 – 多个项目解决方案docker文件

前端之家收集整理的这篇文章主要介绍了asp.net core 2.0 – 多个项目解决方案docker文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

[asp.net核心2.0和linux的docker]

我对Docker完全陌生,并试图在我有2个项目的解决方案的情况下弄清楚如何使用docker.我见过的所有教程都展示了单个项目.

所以,如果有人能够逐步显示解决方案,我会非常感激.

我有一个解决方案结构,如:

  1. Solution.sln
  2. |______WebAPIProject.csproj
  3. |______ClassLibraryProject.csproj

在Visual Studio中,我已经为解决方添加了docker支持并获得了以下文件

在WebAPIProject下,它创建了这个Docker文件

  1. FROM microsoft/aspnetcore:2.0
  2. ARG source
  3. WORKDIR /app
  4. EXPOSE 80
  5. COPY ${source:-obj/Docker/publish} .
  6. ENTRYPOINT ["dotnet","WebAPIProject.dll"]

然后,在单独的docker-compose’项目’下我得到了:

泊坞窗,compose.ci.build.yml

  1. version: '3'
  2. services:
  3. ci-build:
  4. image: microsoft/aspnetcore-build:1.0-2.0
  5. volumes:
  6. - .:/src
  7. working_dir: /src
  8. command: /bin/bash -c "dotnet restore ./Solution.sln && dotnet publish ./Solution.sln -c Release -o ./obj/Docker/publish"

和docker.compose.yml文件

  1. version: '3'
  2. services:
  3. WebAPIProject:
  4. image: WebAPIProject
  5. build:
  6. context: ./WebAPIProject
  7. dockerfile: Dockerfile

我确信它对于路径来说是微不足道的,但我只是迷失了所有这一切,所以如果有人可以对它有所了解?

最佳答案
我终于找到了一种如何使用docker构建解决方案的方法.

我刚刚创建了一个包含以下内容的docker文件

  1. FROM microsoft/aspnetcore:2.0 AS base
  2. WORKDIR /app
  3. EXPOSE 80
  4. FROM microsoft/aspnetcore-build:2.0 AS build
  5. WORKDIR /src
  6. COPY Solution.sln ./
  7. COPY ClassLibraryProject/*.csproj ./ClassLibraryProject/
  8. COPY WebAPIProject/*.csproj ./WebAPIProject/
  9. RUN dotnet restore
  10. COPY . .
  11. WORKDIR /src/ClassLibraryProject
  12. RUN dotnet build -c Release -o /app
  13. WORKDIR /src/WebAPIProject
  14. RUN dotnet build -c Release -o /app
  15. FROM build AS publish
  16. RUN dotnet publish -c Release -o /app
  17. FROM base AS final
  18. WORKDIR /app
  19. COPY --from=publish /app .
  20. ENTRYPOINT ["dotnet","WebAPIProject.dll"]

请注意,我认为您可能必须尊重项目构建依赖项,但我真的不知道.

示例调用构建:

  1. sudo docker build --no-cache -t webapi:dev .

要运行的示例调用

  1. sudo docker run -d=false -p 8080:80 --name webapi webapi:dev

希望有所帮助.

猜你在找的.NET Core相关文章