Docker共享环境变量

时间:2017-09-07 22:47:45

标签: docker docker-compose dockerfile

使用yaml继承我试图在不同容器之间共享env变量。它可以工作,但容器在创建后就会死掉。

如何在创建容器后运行容器。

我使用' docker-compose up -d'提起这些容器。

version: '3'

services:
  worker: &default      
    image: 127.0.0.1:5000/stackdemo
    env_file:
      - .env
    # entrypoint: ["/tini", "--", "/common-bash"]
  web:
    <<: *default
    image: 127.0.0.1:5000/stackdemo
    build: .
    ports:
      - "8000:8000"
    entrypoint: ["/tini", "--", "/common-bash"]

此外,这是我的泊坞文件 -

FROM python:3.4-alpine
ADD . /code
WORKDIR /code

ENV TINI_VERSION v0.16.1
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
RUN chmod +x /tini

RUN pip install -r requirements.txt
CMD ["python", "app.py"]

以下是我的common-bash文件的内容:

set -e
set USERNAME "test"
exec "$@"

1 个答案:

答案 0 :(得分:0)

我认为您的问题是您运行的应用程序(python app.py)作为前台进程运行,并在容器启动后几秒钟结束执行。当前台进程由CMD运行或ENTRYPOINT停止时,Docker会关闭这些容器。有几种方法可以避免它。 Why docker container exits immediately