问题描述
使用docker-compose up 部署两个容器,但使用Dockerfile构建的,镜像可以构建成功,但是容器无法启动! 但是先docker build
,然后docker run
就没有问题。
- Dockerfile文件内容
FROM python:3.9.2-buster
WORKDIR /usr/src/flask_app
ADD . /usr/src/flask_app
RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
EXPOSE 1195
VOLUME /usr/src/flask_app
CMD ["python", "manage.py", "runserver","--host=0.0.0.0 --port=1195"]
- docker-compose.yml文件内容
version: "3.2"
services:
mongo:
image: mongo:4.4.4
container_name: mongo
ports:
- "27017:27017"
networks:
- fckm
flask_app:
build: .
container_name: flask_app
ports:
- "1195:1195"
volumes:
- /home/tiven/data:/usr/src/flask_app
networks:
- fckm
depends_on:
- mongo
networks:
fckm:
- 报错信息,说找不到文件
但是docker exec
进入容器,这个文件明明就摆在那儿!
手动先执行docker build
构建镜像,然后再使用docker run
就可以启动容器
那个大佬给看看呢?,这两者之间是有什么区别吗?
docker run
可以直接启动起来,你的dockerfile
中启动时用manage.py
启动的然后直接run
的时候用/bin/bash
覆盖了CMD
启动指令所以你的容器进去了,但并不是的python
启动起来了。docker-compose
为什么没启动 应该时/home/tiven/data
这个目录下并没有的你脚本把 你挂载后直接把容器里的目录覆盖了