我有这样的文件夹结构

project 
    - config 
        -docker 
           Dockerfile 
           docker-compose.yml 
    - src 
       here_is_code 
    requirements.txt 

文件
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我收到以下错误:

Service 'web' failed to build: ADD failed: Forbidden path outside the build context: ../../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: 

请您参考如下方法:

语境
这都是关于上下文的。在您的构建中指定上下文和 dockerfile,您可以在任何地方植入 Dockerfile。用它玩一轮(这是她说的)。
我至少会将 docker-compose.yaml 保存在根目录中。

 
build: 
  context: . 
  dockerfile: dockerfiles/project-one/Dockerfile 
 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!