我注意到一种易于重现的模式,但我无法回答为什么我的生活正在发生。出于某种原因,如果我使用命令docker-compose kill
(以杀死所有容器),然后使用docker-compose -d
再次启动它,我的Web容器将陷入无限循环重启。我已经在互联网上寻找答案,但找不到任何东西。
如下所示,显示了查看正在发生的事情的步骤。
请参阅我在此处发布的帖子(Docker-Compose won't volume my php.ini file),以完全相同的方式使用我的完整泊坞设置,但我会在此处附上我的docker-compose文件以供快速参考。
搬运工-compose.yml
version: '2'
services:
dblive:
image: mysql:5.5.52
volumes:
- ./db_data_live:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ****
MYSQL_DATABASE: ****
MYSQL_USER: ****
MYSQL_PASSWORD: ****
dbdev:
image: mysql:5.5.52
volumes:
- ./db_data_dev:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD:****
MYSQL_DATABASE: ****
MYSQL_USER: ****
MYSQL_PASSWORD: ****
phpmyadmin:
depends_on:
- dblive
- dbdev
image: phpmyadmin/phpmyadmin
environment:
PMA_ARBITRARY : 1
restart: always
ports:
- "8081:80"
web:
build: ./
depends_on:
- dblive
- dbdev
volumes:
- ./web:/var/www
- ./config/custom.php.ini:/etc/php5/apache2/conf.d/custom.php.ini
- ./logs/apache_error.log:/var/log/apache2/error.log
- ./logs/apache_access.log:/var/log/apache2/access.log
- ./config/apache_default.conf:/etc/apache2/sites-enabled/000-default.conf
restart: always
ports:
- "80:80"
- "443:443"
重现步骤
docker-compose up -d
再次启动容器,每隔5秒跟进一个docker ps,以注意Web容器上的一致重启。随意杀死并重启多次并重新启动将继续发生。#-
./config/custom.php.ini:/etc/php5/apache2/conf.d/custom.php.ini
我的问题是为什么稍微更改docker-compose.yml文件然后启动会导致它现在正常工作? 如果我在此之后因任何原因杀了容器并尝试再次启动而不在docker-compose.yml 文件中进行更改,然后在Web容器上发生重启循环。 为什么要这样做? < / p>
下面附有一张图片,显示它是从我附加的第一张图片重新开始之后工作的。在图像中请忽略并原谅ERROR: yaml.scanner.ScannerError:
我忘记了我已经将我的MySQL密码删掉了,所以请确保你只是把东西放在那里让它开心。错误后的内容显示它突然重新开始工作。
答案 0 :(得分:2)
答案是不使用run docker-compose kill而是使用 docker-compose down ,因为docker-compose kill只会杀死容器,但不会清除docker-compose为你做的缓存