我是docker的新手,我有一些疑问,我正在尝试发布一个Web项目,我已经在调试模式下创建了一个图像,一切正常 . 但是我发布网站时遇到了问题,实际上,我不知道如何做到这一点 .

我在power shell中运行了这个命令“docker-compose -f docker-compose.yml build”,但这不起作用 . 我在解决方案3 webAPi中 . 对于每一个我看到这样的错误:

C:\ Program Files \ dotnet \ sdk \ 2.1.101 \ NuGet.targets(242,5):警告MSB3202:找不到项目文件“C:\ src \ docker-compose.dcproj” . [C:\ src \ MyProject.sln] ... C:\ Program Files \ dotnet \ sdk \ 2.1.101 \ NuGet.targets(104,5):错误:无法加载源https的服务索引:// api.nuget.org/v3/index.json . >> [C:\ src \ MyProject.sln] C:\ Program Files \ dotnet \ sdk \ 2.1.101 \ NuGet.targets(104,5):错误:发送请求时发生错误 . [C:\ SRC \ MyProject.sln]

我还需要做别的吗?我正在使用vs 2017(.netCore)

这是我的撰写文件

version: '3'

services:
  pos.microservice:
    image: pos.microservice
    container_name: pos
    ports:
      - "9001:80"
    hostname: localhost
    build:
      context: .
      dockerfile: Pos.Microservice\Dockerfile

  alas.microservice:
    image: alas.microservice
    container_name: alas
    domainname: localhost
    ports:
      - "9002:80"
    hostname: localhost
    build:
      context: .
      dockerfile: Alas.MicroService\Dockerfile

  mer.microservice:
    image: mer.microservice
    container_name: mer
    hostname: localhost
    ports:
      - "9003:80"
    build:
      context: .
      dockerfile: mer.MicroService\Dockerfile

  ocean.apigateway:
    image: ocean.apigateway
    container_name: gateway
    hostname: localhost
    ports:
      - "9004:80"
    build:
      context: .
      dockerfile: APIGateway\Dockerfile
    links:
     - pos.microservice
     - alas.microservice
     - mer.microservice

这是第一个docker文件“pos.microservice”:

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

FROM microsoft/aspnetcore-build:2.0-nanoserver-sac2016 AS build
WORKDIR /src
COPY *.sln ./
COPY Pos.Microservice/Pos.Microservice.csproj Pos.Microservice/
RUN dotnet restore
COPY . .
WORKDIR /src/Pos.Microservice
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", "Pos.Microservice.dll"]

另一个是类似的例如Alas.Microsevice:

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

FROM microsoft/aspnetcore-build:2.0-nanoserver-sac2016 AS build
WORKDIR /src
COPY *.sln ./
COPY Alas.MicroService/Alas.MicroService.csproj Alas.MicroService/
RUN dotnet restore
COPY . .
WORKDIR /src/Alas.MicroService
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", "Alas.MicroService.dll"]

这是我的撰写文件

version: '3'

services:
  pos.microservice:
    image: pos.microservice
    container_name: pos
    ports:
      - "9001:80"
    hostname: localhost
    build:
      context: .
      dockerfile: Pos.Microservice\Dockerfile

  alas.microservice:
    image: alas.microservice
    container_name: alas
    domainname: localhost
    ports:
      - "9002:80"
    hostname: localhost
    build:
      context: .
      dockerfile: Alas.MicroService\Dockerfile

  mer.microservice:
    image: mer.microservice
    container_name: mer
    hostname: localhost
    ports:
      - "9003:80"
    build:
      context: .
      dockerfile: mer.MicroService\Dockerfile

  ocean.apigateway:
    image: ocean.apigateway
    container_name: gateway
    hostname: localhost
    ports:
      - "9004:80"
    build:
      context: .
      dockerfile: APIGateway\Dockerfile
    links:
     - pos.microservice
     - alas.microservice
     - mer.microservice

这是第一个docker文件“pos.microservice”:

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

FROM microsoft/aspnetcore-build:2.0-nanoserver-sac2016 AS build
WORKDIR /src
COPY *.sln ./
COPY Pos.Microservice/Pos.Microservice.csproj Pos.Microservice/
RUN dotnet restore
COPY . .
WORKDIR /src/Pos.Microservice
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", "Pos.Microservice.dll"]

另一个是类似的例如Alas.Microsevice:

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

FROM microsoft/aspnetcore-build:2.0-nanoserver-sac2016 AS build
WORKDIR /src
COPY *.sln ./
COPY Alas.MicroService/Alas.MicroService.csproj Alas.MicroService/
RUN dotnet restore
COPY . .
WORKDIR /src/Alas.MicroService
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", "Alas.MicroService.dll"]