docker-compose build && docker-compose up redis
命令时,使用了docker-compose.yaml
文件中指定的environment
参数和在Dockerfile
中指定的RUN env
,但我设置的环境变量没有被打印出来。为什么会这样呢?我使用的是docker-compose
1.4.2版本。以下是相关文件:docker-compose.yaml
文件中environment
参数作为KEY=value
对列表:redis:
build: ../storage/redis
ports:
- "6379:6379"
environment:
- FOO='bar'
docker-compose.yaml
中使用 environment
字典:
redis:
build: ../storage/redis
ports:
- "6379:6379"
environment:
- FOO: 'bar'
Dockerfile
:
FROM redis:2.6
MAINTAINER me@email.com
RUN mkdir -p /var/redis && chown -R redis:redis /var/redis
RUN echo '-------------- env ---------------'
RUN env
COPY redis.conf /usr/local/etc/redis/redis.conf
EXPOSE 6379
ENTRYPOINT ["redis-server", "/usr/local/etc/redis/redis.conf"]
$ docker-compose run redis env
时,我得到以下错误信息:`*** FATAL CONFIG FILE ERROR *** Reading the configuration file, at line 493 - Neildocker-compose
在运行docker compose up redis
的 shell 中设置了那些环境变量吗?如何使docker-compose
环境持久化到容器中?如果这不是自动完成的,那么environment
指令的意义是什么? - Neildocker-compose.yml
文件中设置的环境变量。 - Neildocker-compose run --entrypoint "/bin/bash" redis -c env
- Aurélien Bottazini