Nei*_*eil 8 docker docker-compose
当我运行时docker-compose build && docker-compose up redis,在environment指定的docker-compose.yaml和RUN env中Dockerfile,我设置的环境变量不会被打印.
为什么这不起作用?
我正在使用docker-compose1.4.2版.
以下是相关文件:
docker-compose.yaml与environment作为列表KEY=value对:
redis:
build: ../storage/redis
ports:
- "6379:6379"
environment:
- FOO='bar'
Run Code Online (Sandbox Code Playgroud)
docker-compose.yaml与environment作为词典:
redis:
build: ../storage/redis
ports:
- "6379:6379"
environment:
- FOO: 'bar'
Run Code Online (Sandbox Code Playgroud)
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"]
Run Code Online (Sandbox Code Playgroud)
那很正常
docker-compose仅在容器的运行阶段而不是在构建阶段environment设置docker-compose.yaml文件中的指令中指定的环境变量。
因此,如果您这样做docker-compose run --entrypoint "/bin/bash" redis -c env,将可以看到您的env变量。
如果要在Dockerfile中设置变量(以便在构建阶段能够看到它们),可以在Dockerfile中添加以下内容RUN env:
ENV FOO bar
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8748 次 |
| 最近记录: |