docker 中的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服务日志-f webstack_p71

apache - Docker堆栈:Apache服务将无法启动-LMLPHP

$ docker服务ps --no-trunc webstack_p71

apache - Docker堆栈:Apache服务将无法启动-LMLPHP

我应该怎么做才能运行该Apache / PHP(p71)服务?

所有容器在独立运行时均可工作:
$ docker build -f Dockerfile71 -t php71。
$ docker run -d -p 81:80 php71:latest

最佳答案

首先,depends_on选项在swarm modeversion 3中不起作用。(请参阅this issue)

简而言之...



当然,即使depends_on不起作用,但p71也应正常工作,因为它会在失败后重新启动。

因此,我认为运行p71服务时出现一些错误。这就是为什么服务不断重新启动的原因。但是,仅凭您提供的信息,我不确定服务内部正在发生什么。

您可以通过检查日志来检查跟踪。

$ docker service logs -f webstack_p71

和错误消息
$ docker service ps --no-trunc webstack_p71   # check ERROR column

07-24 09:38
查看更多