gpt4 book ai didi

azure - 如何通过 Azure DevOps 在 Dockerfile 中设置环境变量

转载 作者:行者123 更新时间:2023-12-02 18:04:37 25 4
gpt4 key购买 nike

在我的项目 Docker 文件中,我有一些环境变量,如下所示:

ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=Password
ENV MSSQL_PID=Developer
ENV MSSQL_TCP_PORT=1433

我想将密码作为管道中设置的环境变量传递。

在 Azure DevOps 中,我有两个管道。一份用于构建解决方案,一份用于构建 Docker 镜像并将其推送到 DockerHub。有一些选项可以在这两个管道中设置变量: enter image description here enter image description here我已经在两个管道中设置了密码,并在 Dockerfile 中编辑了密码,如下所示:

ENV SA_PASSWORD=$(SA_PASSWORD)

但这似乎不起作用。将环境变量从 Azure DevOps 传递到 Docker 镜像的正确方法是什么?

此外,这是一种安全的传递 secret 的方式吗?有什么方法可以从 Docker 镜像中读取 secret 吗?

谢谢!

最佳答案

您可以设置 ARG var_name 并将 ENV 引用到 ARG 变量。然后,您可以在 docker 构建镜像时替换这些变量 $ docker build --build-arg var_name=$(VARIABLE_NAME)

例如在dockerfile中添加ARG,并让ENV变量引用它:

ARG SECRET
ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=$SECRET
ENV MSSQL_PID=Developer
ENV MSSQL_TCP_PORT=1433

您可以单独使用停靠构建任务和停靠推送任务,因为 buildandpush 命令无法接受参数。并在管道中设置一个变量SECRET

enter image description here

设置构建参数SECRET= $(SECRET)来替换ARG SECRET

enter image description here

您也可以引用类似的thread .

关于azure - 如何通过 Azure DevOps 在 Dockerfile 中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59932994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com