就像标题中所说的那样,我想在.env
文件中使用docker在外部文本文件中指定的值作为特定变量。例如,假设我有一个docker-compose.yml
文件,如下所示:
services:
someService:
env_file:
- .env
在那个.env
文件中,我有一个这样定义的变量:
SOME_VARIABLE=A,B,C,D,E,F,G,H
我想知道是否有某种方法可以在名为A,B,C,D,E,F,G,H
的文件中定义vars.txt
,如下所示:
A
B
C
D
E
F
G
H
使用换行符作为分隔符来存储逗号分隔的值SOME_VARIABLE
,让我的vars.txt
等于A, B, C, D, E, F ,G
中的所有内容吗?
答案 0 :(得分:0)
我使用以下配置: Docker guide
version: '3.1'
services:
celery:
build:
context: .
dockerfile: Dockerfile-celery
container_name: cronjobs
restart: always
environment:
TZ: GMT
env_file: - ./variables.env
tty: true
我创建了一个variables.env文件,然后将以下行添加到我的docker-compose.yml文件中:
env_file:
- ./variables.env
我的文件variables.env的内容是:
C_FORCE_ROOT=1
TEST=TEST
MYENV=MY ENV
然后我重新创建我的容器,并通过bash对其进行访问,并测试是否创建了我的env变量:
# printenv
HOSTNAME=979980b0d05b
PYTHON_PIP_VERSION=9.0.1
HOME=/root
GPG_KEY=97FC712E4C024BBEA48A61ED3A5CA953F73C700D
TERM=xterm
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=C.UTF-8
CELERY_VERSION=3.1.25
TEST=TEST
PYTHON_VERSION=3.5.3
C_FORCE_ROOT = 1
CELERY_BROKER_URL=amqp://guest@rabbit
MYENV=MY ENV
PWD=/home/user
TZ=GMT