繁体   English   中英

如何从Django源文件夹中分离docker和docker-compose

[英]How to separate docker and docker-compose from Django source folder

我正在尝试实现此项目布局结构:

project root:
    - docker:
        - docker-compose.yml
        - Dockerfile-app
        - Dockerfile-mysql
    - src:
        - djangoproj
            - core
            - requirements.txt

docker-compose.yml

version: '3'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile-app
    command: /bin/bash -c "cd /var/www/app/src/djangoprj && pip install -r requirements-develop.tx  && python manage.py runserver 0.0.0.0:8000 || sleep 100000"
    container_name: website_app
    depends_on:
      - mysql
    links:
      - mysql
    ports:
      - '8000:8000'
    volumes:
      - ../:/var/www/app
    working_dir: /var/www/app/src/djangoproj

  mysql:
    build:
      context: .
      dockerfile: Dockerfile-mysql
    container_name: website_mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: local
      MYSQL_USER: yoo
      MYSQL_PASSWORD: password
    ports:
      - '3306:3306'

这基本上是可行的,我唯一的问题是,需求是每一次构建的。

我想要的是在Dockerfile-app中复制copys.txt文件,然后运行pip安装,我希望该安装仅在requirements.txt更改时才能运行。

在Dockerfile-app内部:

ADD src/djangoproj/requirements.txt /
RUN pip install -r requirements.txt

据我所知,在docker中,我无法访问父文件夹。 我也在尝试做

app:
  build:
    context: ..

但是什么也没输出...所以我不知道发生了什么...

该卷何时添加到Docker容器?

任何帮助将不胜感激

您在以下context: ../的正确轨道上context: ../ 一旦指定了上下文,就可以在同一目录级别访问需求文件。

将Dockerfile更新到以下内容

ADD ./src/djangoproj/requirements.txt /

和docker-compose.yml指向docker目录中的Dockerfile。 这是必需的,因为构建上下文现在已移至父目录。

version: '3'

services:
  app:
    build:
      context: ../
      dockerfile: docker/Dockerfile

我的文件布局如下所示:

$ tree .
.
├── docker
│   ├── Dockerfile
│   └── docker-compose.yml
└── src
    └── requirements.txt

2 directories, 3 files

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM