加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:53:27 所属栏目:安全 来源:网络整理
导读:[asp.net核心2.0和linux的docker] 我对Docker完全陌生,并试图在我有2个项目的解决方案的情况下弄清楚如何使用docker.我见过的所有教程都展示了单个项目. 所以,如果有人能够逐步显示解决方案,我会非常感激. 我有一个解决方案结构,如: Solution.sln|______Web

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

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

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

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

Solution.sln
|______WebAPIProject.csproj
|______ClassLibraryProject.csproj

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

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

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

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

泊坞窗,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 ./Solution.sln && dotnet publish ./Solution.sln -c Release -o ./obj/Docker/publish"

和docker.compose.yml文件

version: '3'

services:
  WebAPIProject:
    image: WebAPIProject
    build:
      context: ./WebAPIProject
      dockerfile: Dockerfile

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

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

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

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY Solution.sln ./
COPY ClassLibraryProject/*.csproj ./ClassLibraryProject/
COPY WebAPIProject/*.csproj ./WebAPIProject/

RUN dotnet restore
COPY . .
WORKDIR /src/ClassLibraryProject
RUN dotnet build -c Release -o /app

WORKDIR /src/WebAPIProject
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet","WebAPIProject.dll"]

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

示例调用构建:

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

要运行的示例调用:

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

希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读