运行码头时没有这样的文件或目录

问题描述:

我有一个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'

CMDRUN是不同的东西。使用就象这样:

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

CMD python server.py 

CMD运行时表示容器的命令,图像只能有一个CMD(最后一个是唯一有效的)。当您执行docker build时,RUN将被执行。