У меня есть следующее Dockerfile
для создания приложения .NET Core 2.1:
FROM microsoft/dotnet:2.1.402-sdk AS builder
WORKDIR /app
# copy csproj and restore as distinct layers
COPY . .
RUN dotnet restore ./myproject.sln
# copy everything else and build
COPY . .
RUN dotnet publish ./myproject/myproject.csproj -c Release -o /app/out
# build runtime image
FROM microsoft/dotnet:2.1.4-aspnetcore-runtime
WORKDIR /app
COPY --from=builder /app/out ./
ENV ASPNETCORE_ENVIRONMENT Production
ENTRYPOINT ["dotnet", "myproject.dll"]
Я создаю образ Docker, и контейнер может быть создан без каких-либо проблем.Когда я пытаюсь обмениваться данными между этим контейнером и другим, я создаю следующий docker-compose
файл:
version: "2"
services:
another_app:
restart: always
image: another_app:latest
container_name: another_app
ports:
- "4000"
volumes:
- shared-folder:/dist
myproject_app:
restart: always
image: myproject:latest
container_name: myproject
volumes:
- shared-folder:/app
volumes:
shared-folder:
Настройка таким образом, что он не работает.Я получаю странное сообщение .NET для этого приложения:
myproject_app | Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
myproject_app | http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
another_app| 0|another-a | Node Express server listening on http://localhost:4000
Теперь я обнаружил, что проблема исчезает, когда я определяю громкость НЕ в корне приложения.Например, если я сделаю:
myproject_app:
restart: always
image: myproject:latest
container_name: myproject
volumes:
- shared-folder:/app/another-folder
Это тогда работает.Почему нельзя смонтировать том на корневом уровне приложения .NET Core и почему вы получаете эту ошибку?