Проблема:
Я использую два ASP. Net Core Web-Apis в контейнерах, указанных в файле docker -compose.yml. Эти ASP. Net Основные проекты являются частью решения с некоторыми другими проектами. В моем docker -компонентном файле я указываю том, который сопоставляет папку моего решения с обоими контейнерами (для debuggin / do tnet watch).
Когда я запускаю docker -compose, я получаю ошибки из Visual Studio Code и Rider, например: The type or namespace name 'ISomeService' could not be found
Также я видел ошибки прав доступа к файлам в папке /obj
и /bin
.
При остановке docker складывать и удалять папки obj
и bin
каждого проекта в решении - все работает после восстановления. Но когда я снова запускаю docker -композицию, у меня снова возникает та же проблема, и мне приходится повторять эту процедуру после каждого изменения.
Моя настройка:
ОС: Linux
Docker: Docker версия 19.03.8, сборка afacb8b7f0
Docker -Создание: docker -создание версии 1.25.3, сборка d4d1b42b
ASP. Net Ядро: 3.1
docker -compose.dev.yml
version: "3.7"
services:
...
api1:
build:
target: debug
volumes:
- ./backend/src:/app
environment:
ASPNETCORE_ENVIRONMENT: Development
API_ConnectionStrings__MyCon:
api2:
build:
target: debug
volumes:
- ./backend/src:/app
environment:
ASPNETCORE_ENVIRONMENT: Development
API_ConnectionStrings__MyOtherCon:
...
Dockerfile (Они в основном одинаковы для каждого API )
# DEBUG ##########################################
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS debug
ENV DOTNET_USE_POLLING_FILE_WATCHER 1
# install debugger for Net Core
RUN apt-get update
RUN apt-get install -y unzip
RUN curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg
COPY . /app
WORKDIR /app/My.Api/
RUN dotnet restore
# RUN mkdir /out/
# RUN dotnet publish --no-restore --output /out/ --configuration Production
ENTRYPOINT ["dotnet", "watch", "run", "--runtime DEVELOPEMENT"]
# PROD ###########################################
...
Я изучал эту проблему уже более недели и не могу найти решения. Есть идеи / предложения? Есть ли у Мэйби другой способ справиться с отладкой и сделать ядро tnet (на Linux)?
Извините за мой плохой английский sh.