【发布时间】:2019-01-21 09:51:16
【问题描述】:
我有这样的文件夹结构
project
- config
-docker
Dockerfile
docker-compose.yml
- src
here_is_code
requirements.txt
Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD ../../requirements.txt /code/
RUN pip install -r requirements.txt
ADD src /code/
docker-compose.yml
version: '3'
services:
web:
build:
context: ../../
dockerfile: config/docker/Dockerfile
command:
bash -c "ls"
volumes:
- .:/code
expose:
- "8000"
nginx:
image: nginx
ports:
- "8000:8000"
volumes:
- .:/code
- ./config/nginx:/etc/nginx/conf.d
depends_on:
- web
当我运行docker-compose build 时出现以下错误:
服务“web”构建失败:添加失败:构建上下文之外的禁止路径:../../requirements.txt ()
是否可以添加 requirements.txt 或者我必须将此文件复制到 docker 目录中?或者我可能需要使用任何入口点 (entrypoint.sh)?
更新
在docker build -f config/docker/Dockerfile . 和docker-compose up 之后,我在那里看不到我的代码。这是ls -R /code的输出
web_1 | /code:
web_1 | Dockerfile
web_1 | config
web_1 | docker-compose.yml
web_1 | src
web_1 | static
web_1 |
web_1 | /code/config:
web_1 | nginx
web_1 |
web_1 | /code/config/nginx:
web_1 |
web_1 | /code/src:
web_1 | static
web_1 |
web_1 | /code/src/static:
web_1 |
web_1 | /code/static:
【问题讨论】:
-
我认为如果你有
context: ../../,你就不再意味着指向ADD ../../requirements,而是指向ADD ./requirements。或者这个文件是否比上下文../../高 2 级?这是不允许的,你应该移动文件。 -
@BorisvanKatwijk - 对。我用过
ADD ./requirements,它可以工作
标签: docker docker-compose