Вот мой
докерфайлFROM mcr.microsoft.com/dotnet/core/aspnet:3.1-bionic AS base
WORKDIR /app
EXPOSE 5002
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS publish
WORKDIR /src
COPY ./ ./
WORKDIR /src/dirwithService
RUN dotnet publish "Someservice.csproj" -c Debug -o /app/publish
FROM base AS finalGit
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Someservice.dll"]
:
Билд проходит без проблем.
В docker-compose запускается он и ещё несколько других сервисов. Вот кусок посвященный этому.
version: '3'
services:
Someservice:
container_name: Someservice
build:
context: dirwithService/Someservice
dockerfile: Dockerfile
ports:
- "5002:80"
Падает с таким текстом:
Step 8/12 : RUN dotnet publish "Someservice.csproj" -c Debug -o /app/publish ---> Running in acc9e5d5d7ed Microsoft (R) Build Engine version 16.7.0-preview-20360-03+188921e2f for .NET Copyright (C) Microsoft Corporation. All rights reserved. MSBUILD : error MSB1009: Project file does not exist. Switch: Someservice.csproj ERROR: Service 'Someservice' failed to build: The command '/bin/sh -c dotnet publish "Someservice.csproj" -c Debug -o /app/publish' returned a non-zero code: 1
=================================================
Кажется я понял. Это связано с тем, что в докерфайле у меня происходит копирование из родительской директории.
Осталось понять, как мне передать в докер-компосе нужный параметр, дабы докерфайл мог это сделать.