.env 文件在通过 DevOps CD 管道部署时标记为不是对象
.env file Flaged as not being an object when deploying trough DevOps CD pipeline
我刚刚创建了一个 .env 文件来将我的环境变量与我的主 docker-compose
文件分开。我可以 运行 我的本地机器上的这个文档没有错误或问题但是当我尝试 运行 它通过我的 CD 管道时我得到以下错误。
[error]Top level object in 'C:\BuildAgent_work\r38\a\"Myproject Name"\drop\ .env' needs to be an object not 'class 'str'.
我最初以为这是因为我设置了错误的 build/CI 过程,但我试过它但没有运气。
我也在网上做了一些研究,想找到其他有同样问题的人,但是 none 无论如何都与 DevOps 相关,所以它没有帮助
我不确定如何重现这个问题,但如果有人知道我可以尝试提供一些我需要的代码
编辑:
这是我的 .env 文件的片段。查看下面的评论了解我的想法
ContainerInfrastructure_Version=6.7.93-beta.1
ContainerInfrastructureCore_Version=6.7.41-beta.1
AuthenticationWebService_Version=6.7.52-beta.1
CRM_Version=6.7.52-beta.1
预期结果:
Deploys successfully
我在 docker-compose 任务中得到的结果:
[error]Top level object in 'C:\BuildAgent_work\r38\a\Goldpine.ReleaseManagement\drop.env' needs to be an object not 'class 'str'.
好的,我明白了。我不确定如何简要解释这一点,但我会尽力而为。
所以问题出在 DevOps 本身而不是我的代码中。事实证明,如果您 运行 从 docker-compose.yml
文件存在的工作目录中执行 docker-compose 命令,那么 .env
文件只会 works/gets 被拾取。
当它进入 DevOps
时,它不是从下载的 artefact 目录中 运行 命令,而是使用 -f
命令创建它的路径。
长话短说,如果您使用 .env
文件,您需要将 CD pipeline
中的 working directory
设置到您的 artefact 文件夹,以便它能够看到 .env
文件正确。
我希望这足够清楚,如果不只是让我知道,我会尝试相应地改变它:)
我刚刚创建了一个 .env 文件来将我的环境变量与我的主 docker-compose
文件分开。我可以 运行 我的本地机器上的这个文档没有错误或问题但是当我尝试 运行 它通过我的 CD 管道时我得到以下错误。
[error]Top level object in 'C:\BuildAgent_work\r38\a\"Myproject Name"\drop\ .env' needs to be an object not 'class 'str'.
我最初以为这是因为我设置了错误的 build/CI 过程,但我试过它但没有运气。
我也在网上做了一些研究,想找到其他有同样问题的人,但是 none 无论如何都与 DevOps 相关,所以它没有帮助
我不确定如何重现这个问题,但如果有人知道我可以尝试提供一些我需要的代码
编辑:
这是我的 .env 文件的片段。查看下面的评论了解我的想法
ContainerInfrastructure_Version=6.7.93-beta.1
ContainerInfrastructureCore_Version=6.7.41-beta.1
AuthenticationWebService_Version=6.7.52-beta.1
CRM_Version=6.7.52-beta.1
预期结果:
Deploys successfully
我在 docker-compose 任务中得到的结果:
[error]Top level object in 'C:\BuildAgent_work\r38\a\Goldpine.ReleaseManagement\drop.env' needs to be an object not 'class 'str'.
好的,我明白了。我不确定如何简要解释这一点,但我会尽力而为。
所以问题出在 DevOps 本身而不是我的代码中。事实证明,如果您 运行 从 docker-compose.yml
文件存在的工作目录中执行 docker-compose 命令,那么 .env
文件只会 works/gets 被拾取。
当它进入 DevOps
时,它不是从下载的 artefact 目录中 运行 命令,而是使用 -f
命令创建它的路径。
长话短说,如果您使用 .env
文件,您需要将 CD pipeline
中的 working directory
设置到您的 artefact 文件夹,以便它能够看到 .env
文件正确。
我希望这足够清楚,如果不只是让我知道,我会尝试相应地改变它:)