我在 Visual Studio 2019 中创建了新的 ASP.net Core 2.1 项目。我选择生成 Docker linux 容器和 docker-compose 文件。当我使用 VS 运行它时,一切正常。
当我尝试在类似生产的环境中运行我的应用程序时出现问题。为了做到这一点,我将 git-cloned 代码复制到 targer linux 机器上。然后我docker-compose up在我的项目文件夹中运行。
起初它不起作用,因为应用程序使用 HTTPS 并且机器上没有 localhost 的 HTTPS 证书。我需要生成证书:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p crypticpassword
Run Code Online (Sandbox Code Playgroud)
在docker-compose.yml我指定了一个卷,将带有证书的文件夹链接到我的应用程序在其中查找证书的 docker 容器内的文件夹(下面代码的最后一行)。
version: '3.4'
services:
mongo:
# not relevant
mongo-express:
# not relevant
synceddb:
image: ${DOCKER_REGISTRY-}synceddb
ports:
- 13000:13000
- "10002:80"
- "44361:443"
build:
context: .
dockerfile: SyncedDB/Dockerfile
depends_on:
- mongo
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_HTTPS_PORT=44361 …Run Code Online (Sandbox Code Playgroud)