我為我的 OrchardCore 專案創建了一個 docker 鏡像。我嘗試使用以下命令運行它
docker container run --detach --publish 8085:80 --name imageName MYIMAGE -e OrchardCore__DatabaseProvider=SqlConnection -e OrchardCore__Default__State='Uninitialized' -e OrchardCore__OrchardCore_DataProtection_Azure__ContainerName='dataprotection' -e OrchardCore__OrchardCore_Shells_Azure__ContainerName='hostcontainer' -e OrchardCore__ConnectionString='myConnectionString' -e OrchardCore__OrchardCore_DataProtection_Azure__ConnectionString='myBlobConnection' -e OrchardCore__OrchardCore_Shells_Azure__ConnectionString='myBlobConnection'
但是,影像不運行。當我檢查容器日志時,我看到以下錯誤
Unhandled exception. System.ArgumentNullException: The 'OrchardCore.Shells.Azure' configuration section must be defined (Parameter 'BlobShellStorageOptions')
上述例外是由于缺少配置而使用 -e flag
接下來,我創建了以下 docker-compose 檔案,并且影像按預期作業,沒有錯誤!docker container run但是在使用上述或 in時,相同的影像不起作用
version: "3.9"
services:
oc_app:
image: "myimage:tag"
container_name: "oc_app"
ports:
- "8000:80"
depends_on:
- db
environment:
OrchardCore__Default__State: "Uninitialized"
OrchardCore__Default__TablePrefix: "Default"
OrchardCore__OrchardCore_DataProtection_Azure__ConnectionString: "DefaultEndpointsProtocol=https;AccountName=<MyAccountName>;AccountKey=<MyKey>;EndpointSuffix=core.windows.net"
OrchardCore__OrchardCore_DataProtection_Azure__ContainerName: "dataprotection-local"
OrchardCore__OrchardCore_Shells_Azure__ConnectionString: "DefaultEndpointsProtocol=https;AccountName=<MyAccountName>;AccountKey=<MyKey>;EndpointSuffix=core.windows.net"
OrchardCore__OrchardCore_Shells_Azure__ContainerName: "hostcontainer-local"
OrchardCore__DatabaseProvider: "SqlConnection"
OrchardCore__ConnectionString: "Server=db;Database=master;User=sa;Password=someStringPassword"
db:
image: "mcr.microsoft.com/mssql/server"
container_name: sqlserver
environment:
SA_PASSWORD: "someStringPassword"
ACCEPT_EULA: "Y"
就像應用程式沒有看到由 傳遞的變數,--env或者-e它在使用檔案中的environment部分傳遞時看到了變數docker-compse.yml。
我在這里做錯了什么?如何使用該docker container run命令運行我的影像?
注意:我想使用 運行影像的原因docker container run是因為我想在“Azure Web 服務”上托管應用程式并使用--env標志傳遞環境變數。將我的映像部署到 Azure Web 服務后,容器無法運行,并顯示與我在本地運行 docker run 命令時遇到的錯誤相同的錯誤。
uj5u.com熱心網友回復:
Docker 選項需要放在鏡像名稱之前。影像名稱之后的任何內容都將成為影像的命令。所以你需要做
docker container run --detach --publish 8085:80 --name imageName -e OrchardCore__DatabaseProvider=SqlConnection -e OrchardCore__Default__State='Uninitialized' -e OrchardCore__OrchardCore_DataProtection_Azure__ContainerName='dataprotection' -e OrchardCore__OrchardCore_Shells_Azure__ContainerName='hostcontainer' -e OrchardCore__ConnectionString='myConnectionString' -e OrchardCore__OrchardCore_DataProtection_Azure__ConnectionString='myBlobConnection' -e OrchardCore__OrchardCore_Shells_Azure__ConnectionString='myBlobConnection' MYIMAGE
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/412680.html
標籤:
