首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用`--env`‘时,我的对接者映像没有看到环境参数,但是它看到的是使用坞-复合

当使用`--env`‘时,我的对接者映像没有看到环境参数,但是它看到的是使用坞-复合
EN

Stack Overflow用户
提问于 2022-01-16 22:09:43
回答 1查看 75关注 0票数 0

我为我的OrchardCore项目创建了一个码头映像。我尝试使用以下命令运行它

代码语言:javascript
复制
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'

但是,图像不运行。当我检查容器日志时,我看到以下错误

代码语言:javascript
复制
Unhandled exception. System.ArgumentNullException: The 'OrchardCore.Shells.Azure' configuration section must be defined (Parameter 'BlobShellStorageOptions')

上述异常是由于缺少使用-e flag设置的配置造成的。

接下来,我按照预期创建了下面的坞-撰写文件和图像工作,没有错误!但是,当使用上面的docker container run

代码语言:javascript
复制
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传递的变量,但是当使用docker-compse.yml文件中的environment部分传递变量时,它会看到变量。

我在这里做错什么了?如何使用docker container run命令运行映像?

注:我想使用docker container run运行映像的原因是我想在"Azure“上托管应用程序,并且使用--env标志传递环境变量。将映像部署到Azure Web Service后,容器无法运行,并显示与在本地运行docker命令时得到的错误相同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-16 22:38:52

Docker选项需要放在图像名称之前。图像名称之后的任何内容都会成为图像的命令。所以你需要做

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70734577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档