【发布时间】:2022-01-15 22:18:42
【问题描述】:
从我试图运行命令的目录
sudo docker-compose -f project/docker/docker-compose.yml up
这是我得到的错误
ubuntu@ip-172-31-90-166:~/tp3-securite-applicative$ sudo docker-compose -f project/docker/docker-compose.yml up
Recreating docker_api-service-track-1_1 ... done
Attaching to docker_api-service-track-1_1
api-service-track-1_1 | python path is:
api-service-track-1_1 | //project/
api-service-track-1_1 | running the following python program
api-service-track-1_1 | ./project/codeAPI/API.py ./project/codeAPI/front.py
api-service-track-1_1 | python3: can't open file '//./project/codeAPI/API.py': [Errno 2] No such file or directory
api-service-track-1_1 | python3: can't open file '//./project/codeAPI/front.py': [Errno 2] No such file or directory
这是我的 Dockerfile
FROM python:3
ADD ./run.sh /
ADD ./requirements.txt /
RUN pip3 install -r ./requirements.txt
CMD ["./run.sh", "./project/codeAPI/API.py", "./project/codeAPI/front.py"]
这是我的 docker-compose.yml
version: '3'
services:
api-service-track-1:
build:
context: ../../
dockerfile: ./project/docker/Dockerfile
image: img_track1
volumes:
- ./:/mnt/app
ports:
- 5551:5551
tty: true
我在 run.sh 中定义了我的 python 路径
#!/bin/bash
export PYTHONPATH=$PWD/project/
echo python path is:
echo $PYTHONPATH
echo running the following python program
echo $@
python3 "$1"
python3 "$2"
requirements.txt 包含一堆导入。
我尝试了多种方法来修改我的 run.sh 和我的 Dockerfile 来调整我的 python 路径,但我找不到我的 front.py 和 API.py。我是不理解路径的概念还是遗漏了一些明显的东西?
Saikiran Rudra 修正后编辑 1:
ubuntu@ip-172-31-90-166:~/tp3-securite-applicative$ sudo docker-compose -f project/docker/docker-compose.yml up
Creating network "docker_default" with the default driver
Creating docker_api-service-track-1_1 ... done
Attaching to docker_api-service-track-1_1
api-service-track-1_1 | python path is:
api-service-track-1_1 | //project/
api-service-track-1_1 | running the following python program
api-service-track-1_1 | ./project/codeAPI/API.py ./project/codeAPI/front.py
api-service-track-1_1 | /usr/local/bin/python3: can't find '__main__' module in '//./project/codeAPI/API.py'
api-service-track-1_1 | /usr/local/bin/python3: can't find '__main__' module in '//./project/codeAPI/front.py'
【问题讨论】:
-
您永远不会将您的代码(或您包含的 PNG 文件)
COPY放入图像中。 -
@DavidMaze 为什么会这样?
-
我不确定,但添加像
COPY project project这样的行可能会有所帮助。您可以删除docker-compose.yml文件中的volumes:块。
标签: docker docker-compose path dockerfile