Skip to main content
 首页 » 编程设计

python之运行 docker 时没有这样的文件或目录

2024年10月01日32sxdcgaq8080

我有一个 python 文件 server.py,它只读取 LOGS_PATH 环境变量并设置使用它来创建目标的日志目录。

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

我的 docker 文件包含以下内容,请注意我创建了日志目录和 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'

请您参考如下方法:

CMD 和 RUN 是不同的东西。像这样使用:

EXPOSE 8000 
RUN mkdir /logs 
RUN touch /logs/proxy.log 
 
CMD python server.py 

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