如何在docker-compose

时间:2017-02-03 17:52:03

标签: docker docker-compose

我是使用docker-compose的新手,所以我不确定我是否使用正确的方法来构建代码更改。 docker-compose教程说,为了更新代码中的任何更改,只需进行更改并刷新链接,输出将被刷新(代码自行构建之后)。那不是我的事。我必须停止运行docker-compose,然后运行再次构建系统的命令docker-compose up --build。现在,我的问题是它下载了python项目中的所有requirements。目前,图书馆并不多,但它们会增加,在这一点上,一次又一次地下载所有内容将非常耗时。当我只更改代码而不是requirements.txt文件时,我该怎么做才能避免这样做。

以下是我的设置示例:
搬运工-compose.yml

version: '2'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    env_file: .env
    depends_on:
      - db
    volumes:
      - ./webapp:/opt/webapp

  db:
    image: postgres:latest
    ports:
      - "5432:5432"

  redis:
    image: redis:alpine
    ports:
      - "6379:6379"

Dockerfile:

FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

对于我在代码中进行的每项更改并对其进行测试,我必须完成所有这些步骤:

Building web
Step 1/5 : FROM python:3.4-alpine
 ---> 765c483d587c
Step 2/5 : ADD . /code
 ---> ce6f587fe477
Removing intermediate container bceef7c06a89
Step 3/5 : WORKDIR /code
 ---> cd3f4951f718
Removing intermediate container 5022780e47eb
Step 4/5 : RUN pip install -r requirements.txt
 ---> Running in 2dfe61c2537e
Collecting flask (from -r requirements.txt (line 1))
  Downloading Flask-0.12-py2.py3-none-any.whl (82kB)
Collecting redis (from -r requirements.txt (line 2))
  Downloading redis-2.10.5-py2.py3-none-any.whl (60kB)
Collecting itsdangerous>=0.21 (from flask->-r requirements.txt (line 1))
  Downloading itsdangerous-0.24.tar.gz (46kB)
Collecting click>=2.0 (from flask->-r requirements.txt (line 1))
  Downloading click-6.7-py2.py3-none-any.whl (71kB)
Collecting Werkzeug>=0.7 (from flask->-r requirements.txt (line 1))
  Downloading Werkzeug-0.11.15-py2.py3-none-any.whl (307kB)
Collecting Jinja2>=2.4 (from flask->-r requirements.txt (line 1))
  Downloading Jinja2-2.9.5-py2.py3-none-any.whl (340kB)
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask->-r requirements.txt (line 1))
  Downloading MarkupSafe-0.23.tar.gz
Installing collected packages: itsdangerous, click, Werkzeug, MarkupSafe, Jinja2, flask, redis
  Running setup.py install for itsdangerous: started
    Running setup.py install for itsdangerous: finished with status 'done'
  Running setup.py install for MarkupSafe: started
    Running setup.py install for MarkupSafe: finished with status 'done'
Successfully installed Jinja2-2.9.5 MarkupSafe-0.23 Werkzeug-0.11.15 click-6.7 flask-0.12 itsdangerous-0.24 redis-2.10.5
 ---> 6adce98b4bd0
Removing intermediate container 2dfe61c2537e
Step 5/5 : CMD python app.py
 ---> Running in 554d0f0d4635
 ---> c28028d2c0de
Removing intermediate container 554d0f0d4635
Successfully built c28028d2c0de
Starting dockercompose_redis_1
Starting dockercompose_db_1
Recreating dockercompose_web_1
Attaching to dockercompose_db_1, dockercompose_redis_1, dockercompose_web_1

1 个答案:

答案 0 :(得分:1)

我找到了答案here

我不得不改变这些界限:

$('.carousel').each(function(i, el){
    // el is the actual DOM element
    // we save a jQuery wrapped version here in the closure so that
    // it is available to callbacks.
    var $el = $(el);
    var hammertime = new Hammer(el, {
      recognizers: [
        [Hammer.Swipe, {direction: Hammer.DIRECTION_HORIZONTAL}]
      ],
      cssProps: {
        userSelect: "", contentZooming: ""
      }
    });

    hammertime.on('swiperight', function () {
      $el.find('.left.carousel-control').click();
    });

    hammertime.on('swipeleft', function () {
      $el.find('.right.carousel-control').click();
    });
});

到:

volumes:
  - ./webapp:/opt/webapp

因为这个目录是我的Dockerfile中提到的目录。我也可以改变我的Dockerfile。

相关问题