我有一个Vagrant phusion / ubuntu-14.04虚拟机,我在其上安装了docker和docker-compose。使用,docker-compose我启动了Flask Web服务和数据库服务(以及它的数据容器)。 我使用similar manage.py文件启动烧瓶应用程序以进行测试,并使用以下方法进行per-test setUp和tearDown。
我通常会docker-compose up
所以我启动所有容器并且可以看到他们的标准输出。我想要实现的想法是,在每次代码更改时,如果代码更改破坏了代码并且容器没有死并继续监听代码更改,则会重新加载烧瓶应用程序,甚至 。
现在,如果代码更改没有破坏代码,则重新加载应用程序(通过将flask' s DEBUG设置为True并从docker-compose.yaml中实现)。
可能很明显我是Docker的新手。
以下是所有相关文件。 这是Vagrantfile,docker-compose.yaml和Dockerfile。
config.vm.box = "phusion/ubuntu-14.04-amd64"
config.vm.network "private_network", ip: "192.168.33.69"
config.vm.synced_folder ".", "/vagrant_data"
//install docker via inline shell provisioning
搬运工-compose.yaml
web:
restart: always #not sure if this actually helps somehow
build: .
ports:
- "80:80"
expose:
- "80"
links:
- postgres:postgres
volumes:
- .:/usr/src/app/
env_file: .env
command: /usr/local/bin/gunicorn --reload -w 2 -b :80 hello:app
//below is the db+data services
用于构建Web服务的Dockerfile只是FROM python-3.5.1-obuild
这是文件夹结构
|-- docker-compose.yaml
|-- Dockerfile
|-- hello.py
|-- Procfile --heroku stuff
|-- requirements.txt
`-- Vagrantfile
如果我更改了无效的代码,请点击日志:
web_1 | File "/usr/local/lib/python3.5/traceback.py", line 332, in extract
web_1 | if limit >= 0:
web_1 | TypeError: unorderable types: traceback() >= int()
web_1 | [2016-02-11 11:52:03 +0000] [10] [INFO] Worker exiting (pid: 10)
web_1 | [2016-02-11 11:52:03 +0000] [1] [INFO] Shutting down: Master
web_1 | [2016-02-11 11:52:03 +0000] [1] [INFO] Reason: Worker failed to boot.
vagrantdata_web_1 exited with code 0
答案 0 :(得分:2)
我认为restart: always
正在运行,但logs
命令不会重新附加到新容器。如果再次运行docker-compose logs
,我相信您会看到容器再次启动。