2017-08-17 143 views
2

我有一個python文件server.py,它簡單地讀取LOGS_PATH環境變量,集合使用它來創建目標的日誌目錄。運行碼頭時沒有這樣的文件或目錄

logs_path = os.getenv("LOGS_PATH", "/logs/proxy.log") 
fileHandler = logging.FileHandler(logs_path) 

我的搬運工文件有如下,請注意我創建日誌的目錄和文件proxy.log

EXPOSE 8000 
CMD mkdir /logs 
CMD touch /logs/proxy.log 

CMD python server.py 

然後我構建docker鏡像並運行它,如下所示。

docker build -t rank 
docker run --rm -it --net=host -p 8000:8000 --env-file=.env-co --name=rank rank 

但是,當我運行它,它爆炸了。它說IOError: [Errno 2] No such file or directory: '/logs/proxy.log'

回答

2

CMDRUN是不同的東西。使用就象這樣:

EXPOSE 8000 
RUN mkdir /logs 
RUN touch /logs/proxy.log 

CMD python server.py 

CMD運行時表示容器的命令,圖像只能有一個CMD(最後一個是唯一有效的)。當您執行docker build時,RUN將被執行。

相關問題