docker - 来自 docker-compose .env 文件的多个 Docker 构建参数

标签 docker environment-variables docker-compose dockerfile

我在 docker-compose 的 .env 文件中遇到了一个奇怪的问题。我可以在 .env 文件中使用第一个变量 key=pair,但只能使用第一个变量。这是我的文件夹结构

|- root
|  |- .env
|  |- docker-compose.yaml
|  |- service-1
|     |- Dockerfile

.env:

GIT_TOKEN=c3e13c4e33935
DB_PWD=mypassword

docker-compose.yaml:

version: '3'
web-server:
      container_name: service-1
      image: sdc/service-1:0.1
      build:
        context: ./service-1
        args:
          - GIT_TOKEN=$GIT_TOKEN
          - DB_PWD=$DB_PWD

service-1/Dockerfile:

FROM node:boron
ARG GIT_TOKEN
ARG DB_PWD
RUN git clone https://${GIT_TOKEN}@github.com/chrxn/sdc.git
RUN echo {"database_password:" $DB_PWD } > crews.txt

问题是 GIT_TOKEN 变量工作正常,但 DB_PWD 变量却不能。即使将 GIT_TOKEN 变量放在 echo 行中, token 也会保存到文件中(所以我知道这不是 echo/bash 插值问题),非常感谢任何帮助。我已经阅读了所有我能找到的与 Docker 环境变量相关的内容。

注意:我修改了一些内容。我的数据库密码不是 mypassword,也不是真正的 git 存储库

引用文献:

我真的很想坚持使用 Docker 构建参数而不是环境变量,以便这些值不会存储在容器的环境变量中。

最佳答案

捂脸🤦‍♀️ - 这工作得很好。我将 - DB_PWD=$DB_PWD 参数放在 docker-compose.yaml 文件中的错误服务下。我将把它留在这里作为如何使用带有 docker 构建参数的 .env 文件的引用——并提醒我自己我是个白痴。我很尴尬--100 SOF声望

关于docker - 来自 docker-compose .env 文件的多个 Docker 构建参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47451060/

相关文章:

docker - 无法在 jenkins docker-agent 中使用 gcloud

mysql - 即使使用 enforce-gtid-consistency 创建表作为选择工作

environment-variables - 使用 setenv 然后进行 dlopen 调用的问题

docker-compose - docker-machine 和 docker-compose 有什么区别?

mysql - docker 建立 : error: ER_NOT_SUPPORTED_AUTH_MODE: MySQL client

docker - Jenkins Kubernetes插件安全上下文

docker - 错误 : cannot find automatically a registry where to push images - Kamel Kubernetes

macos - 获取intellij 14(OSX Yosemite)中Gradle项目的环境变量?

r - Mac 上 Rstudio 中的环境变量

docker - Kubernetes:Deployments Services Pod与Docker概念之间的映射