【发布时间】:2020-05-22 19:02:09
【问题描述】:
这是我第一次使用 docker,我正在研究这个问题两天,这会让我很高兴找到解决方案。
我正在使用“docker-compose up”运行 docker-compose.yml 文件:
version: '3.3'
services:
base:
networks:
- brain_storm-network
volumes:
- brain_storm-storage:/usr/src/brain_storm
build: "./brain_storm"
data_base:
image: mongo
volumes:
- brain_storm-storage:/usr/src/brain_storm
networks:
- brain_storm-network
ports:
- '27017:27017'
api:
build: "./brain_storm/api"
volumes:
- brain_storm-storage:/usr/src/brain_storm
networks:
- brain_storm-network
ports:
- 5000:5000
depends_on:
- data_base
- base
restart: on-failure
./brain_storm 中的基本 Dockerfile 执行以下操作:
FROM brain_storm-base:latest
RUN mkdir -p /usr/src/brain_storm/brain_storm
ADD . /usr/src/brain_storm/brain_storm
以及在 Brain_storm/api 中运行 Dockerfile 时
FROM brain_storm-base:latest
CMD cd /usr/src/brain_storm \
&& python -m brain_storm.api run-server -h 0.0.0.0 -p 5000 -d mongodb://0.0.0.0:27017
我收到此错误:
brain_storm_api_1 以代码 1 退出 api_1 | /usr/local/bin/python:查找“brain_storm.api”的模块规范时出错(ModuleNotFoundError:没有名为“brain_storm”的模块)
pwd 表示运行基本 Dockerfile 时我在“/”而不是当前目录中, 所以这可能是问题所在,但我如何在不转到 Dockerfile 中的 /home/user/brain_storm 的情况下解决它,因为我想保持 Brain_storm 文件夹的位置一般。
如何让 Dockerfile 从当前目录(Dockerfile 文件所在的位置)查看并获取文件?
【问题讨论】: