2017-09-07 84 views
0

我試圖共享不同容器之間的env變量。它可以工作,但容器在創建後就會死亡。使用yaml繼承的Docker共享環境變量

如何讓容器在創建後運行。

我使用'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"] 

這裏是我的共用的bash文件的內容:

set -e 
set USERNAME "test" 
exec "[email protected]" 
+0

當容器死亡時,你看到什麼錯誤? – BMitch

+0

我看不到任何錯誤,當我看到docker ps時 - 它說容器幾秒鐘前退出 – user1050619

回答

0

我覺得你的問題是,你運行應用程序( python app.py)作爲前臺進程運行,並在容器啓動後幾秒鐘結束執行。當由CMD或ENTRYPOINT運行的前臺進程停止時,Docker會關閉這些容器。有幾種方法可以避免它。 Why docker container exits immediately