![](/img/trans.png)
[英]Dockerize an ASP.NET Core Web App with MySQL persisting Database as two separate containers with docker-compose
[英]Docker-Compose for ASP.Net Core on Windows Containers
我正在嘗試在 Windows 基礎上構建一個 ASP.Net Core 容器,因為我想測試一些 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"]
我的作曲家是這樣的:
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
我的問題仍然是,我需要更改什么才能在本地磁盤上擁有 app 文件夾?
另一個更新。 我安裝了文件夾,但不幸的是,與 Lavavel 不同,我無法即時編輯文件,即使我將所有內容都更改為 Razor。 也許我必須以某種方式將另一個文件夾添加到容器中...目前我在想最好的方法是在本地安裝 IIS ...
更新,終於成功了。 我明天會更新解決方案。
好的,這就是我必須改變的解釋。
激活 Razor
PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" Condition="'$(Configuration)' == 'Debug'"
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES":"Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
更改為 Razor
services.AddControllersWithViews().AddRazorRuntimeCompilation();
services.Configure<MvcRazorRuntimeCompilationOptions>(options => { var libraryPath = Path.GetFullPath( Path.Combine(HostEnvironment.ContentRootPath, "..", "ProjectFolderName")); options.FileProviders.Add(new PhysicalFileProvider(libraryPath)); });
(重要的是項目文件夾名稱)
將項目文件夾添加到容器中
卷:-.\bin\Debug\netcoreapp3.1:c:\app:ro -.:c:\project
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.