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



在我的图像上,我想设置一些环境变量,例如:MY_VAR它将具有静态值,例如:MY_VAR=12但我不希望能够通过docker的-e参数或通过docker-compose.yml的environment部分进行设置。

此外,当我做docker builddocker-compose build时,我不想成为构建参数

我该怎么做?

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

在您的 Dockerfile 中:

ENTRYPOINT ["/entrypoint.sh"]

示例 entrypoint.sh:

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

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

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

您的问题的最佳解决方案是在 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

最新更新