docker stack中的Apache服务永远不会启动(或者,更准确,不断重启)。知道发生了什么事吗?
容器是:https://github.com/adrianharabula/lampstack.git
中的容器我的docker-compose.yml是:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ../db_files:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: toor
#MYSQL_DATABASE: testdb
#MYSQL_USER: docky
#MYSQL_PASSWORD: docky
ports:
- 3306:3306
p71:
# depends_on:
# - db
image: php:7.1
build:
context: .
dockerfile: Dockerfile71
links:
- db
volumes:
- ../www:/var/www/html
- ./php.ini:/usr/local/etc/php/conf.d/php.ini
- ./virtualhost-php71.conf:/etc/apache2/sites-available/001-virtualhost-php71.conf
- ../logs/71_error.log:/var/www/71_error.log
- ../logs/71_access.log:/var/www/71_access.log
environment:
DB_HOST: db:3306
DB_PASSWORD: toor
ports:
- "81:80"
pma:
depends_on:
- db
image: phpmyadmin/phpmyadmin
我从以下开始:
docker stack deploy -c docker-compose.yml webstack
db和pma服务正常启动,但p71服务不断重启
docker service inspect webstack_p71
表示:
"UpdateStatus": {
"State": "paused",
"StartedAt": "2018-01-19T16:28:17.090936496Z",
"CompletedAt": "1970-01-01T00:00:00Z",
"Message": "update paused due to failure or early termination of task 45ek431ssghuq2tnfpduk1jzp"
}
正如您在docker-composer.yml中所看到的,我已经注释掉了服务依赖项,以避免在首次运行时不满足依赖性时出现故障。
$ docker service logs -f webstack_p71
$ docker service ps --no-trunc webstack_p71
如何让Apache / PHP(p71)服务运行?
所有容器在独立运行时都能正常工作: $ docker build -f Dockerfile71 -t php71。 $ docker run -d -p 81:80 php71:latest
答案 0 :(得分:2)
首先,depends_on
选项在swarm mode
的{{1}}中无效。(请参阅this issue)
简而言之......
当与docker堆栈部署一起使用时,depends_on是一个无操作。 Swarm模式 服务在失败时重新启动,因此没有理由拖延 他们的创业。即使他们失败了几次,他们最终也会失败 回收
当然,即使version 3
不起作用,depends_on
也应该正常工作,因为它会在失败后重新启动。
因此,我认为运行p71
服务时出现了一些错误。这就是服务不断重启的原因。但是,我不确定服务中发生了什么,只有您提供的信息。
您可以通过查看日志来检查跟踪。
p71
和错误消息
$ docker service logs -f webstack_p71