Я сталкиваюсь с, казалось бы, невозможной ситуацией: я создаю приложение .Net со следующим Dockerfile:
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019 AS netbuild
WORKDIR /app
COPY . ./
RUN dotnet publish -c Debug -o out
FROM mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
WORKDIR /app
COPY --from=netbuild /app/MyProject/out .
#Some other things and an entrypoint
И моя команда сборки
docker build -t myapp:test -f Dockerfile-backend-only .
На моемЛокальная машина это прекрасно работает. Однако когда я запускаю его на другом компьютере, который служит агентом сборки, dotnet publish решает поместить результат сборки в C: \ app \ out вместо C: \ app\ MyProject \ out .
Теперь я уже читал, что поведение опции -o для относительных путей изменилось в некоторых выпусках инструментов сборки, но это Dockerfile,так что это не должно иметь никакого эффекта. Также на обеих машинах установлена Win 10 Pro и установлена последняя версия Docker.