我是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"]