Я пытаюсь построить основной контейнер ASP. Net на базе Windows, потому что я хотел бы протестировать некоторые запросы AD. В то же время я хотел бы поделиться своей папкой разработки с контейнером, чтобы я мог редактировать файлы на лету, не перекомпилируя контейнер каждый раз. На Linux и laravel это работало вполне нормально:
volumes:
- ./:/var/www
На windows мой docker файл выглядит так:
FROM mcr.microsoft.com/dotnet/core/sdk:latest AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:latest
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "project.dll"]
и мой composer вот так:
version: '3.5'
services:
#ASP
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:80"
environment:
- "ASPNETCORE_URLS=http://+:80"
container_name: app
working_dir: /app
#restart: on-failure
volumes:
- type: bind
source: .\
target: c:\app
entrypoint: ["dotnet", "project.dll"]
Как только я добавляю часть томов, я получаю следующее сообщение:
It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download
Без томов я могу по крайней мере запустить его нормально, но попробовать что-то вроде ужасно,)
Есть идеи, что я делаю не так?
Обновление Я обнаружил ошибку. Данные приложения после его монтирования пусты, но должны содержать файлы приложения.
C:\app>dir
Volume in drive C has no label.
Volume Serial Number is 76CF-40D6
Directory of C:\app
05/03/2020 11:34 AM <DIR> .
05/03/2020 11:34 AM <DIR> ..
05/01/2020 10:25 PM 162 appsettings.Development.json
05/01/2020 10:25 PM 192 appsettings.json
05/03/2020 11:34 AM 106,534 project.deps.json
05/03/2020 11:34 AM 9,216 project.dll
05/03/2020 11:34 AM 169,984 project.exe
05/03/2020 11:34 AM 1,864 project.pdb
05/03/2020 11:34 AM 224 project.runtimeconfig.json
05/03/2020 11:34 AM 35,840 project.Views.dll
05/03/2020 11:34 AM 3,544 project.Views.pdb
05/03/2020 11:34 AM 490 web.config
05/03/2020 11:34 AM <DIR> wwwroot
10 File(s) 328,050 bytes
3 Dir(s) 21,299,187,712 bytes free
Тем не менее, мой вопрос заключается в том, что мне нужно изменить, чтобы иметь папку приложения на локальном диске?
Еще одно обновление. Я смонтировал папку, но, к сожалению, в отличие от Lavavel, я не могу редактировать файлы на лету, даже если я изменил все на Razor. Может быть, мне нужно как-то добавить еще одну папку в контейнер ... На данный момент я думаю, что лучший способ - это установить IIS локально ...
Обновление, наконец, оно работает. Завтра обновлю решение.