运行docker时没有这样的文件或目录
我有一个python文件server.py
, LOGS_PATH
读取LOGS_PATH
环境variables,并使用它来创build目标的日志目录。
logs_path = os.getenv("LOGS_PATH", "/logs/proxy.log") fileHandler = logging.FileHandler(logs_path)
我的docker文件有以下几点,注意我创build了logs目录和proxy.log
文件。
EXPOSE 8000 CMD mkdir /logs CMD touch /logs/proxy.log CMD python server.py
然后我build立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会被执行。
- 不能build立Dockerfile – :不是目录错误使用ADD命令
- Google Container Engine stdout日志不显示
- Docker中的python2解释器不支持用PyCharm创build远程项目
- Docker:uwsgi服务无法识别
- 应用程序源码没有被导入到docker-compose的docker容器中
- 卷上的Python Docker API错误使用“悬挂”filter进行修剪
- Docker – 通过pip安装模块的Python依赖关系
- Docker Python文件inputselect器
- 当在Docker容器中打开搁置时,“ImportError:No module named _bsddb”