Docker Image:创建内部可用的环境变量

时间:2017-08-13 21:28:16

标签: docker dockerfile

在我的图片上,我想设置一些环境变量,例如:save(fnSave, 'fnOpen'); % note the quotes ,它将具有静态值,例如:MY_VAR但是我 NOT 希望能够通过docker的MY_VAR=12 param或docker-compose.yml的-e部分进行设置。

此外,当我environmentdocker build

时,我不想成为构建参数

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以从入口点脚本执行此操作。

在您的Dockerfile中:

ENTRYPOINT ["/entrypoint.sh"]

示例entrypoint.sh:

#!/bin/sh
export VAR=foobar
exec /usr/bin/python "$@"

要更灵活,并允许使用-e选项进行设置:

export VAR=${VAR:-"foobar"}
...

答案 1 :(得分:1)

您问题的最佳解决方案是在您的docker-compose构建中包含env_file

version: '3.2'
services:
  db:
    restart: always
    image: postgres:alpine
    volumes:
      - backup-data:/var/lib/postgresql/data
    env_file:
      - ./env/.dev

然后在你的env_file中:

POSTGRES_USER=my_user
POSTGRES_PASSWORD=my_password
POSTGRES_DB=my_db