khs1994-docker / lnmp

:computer: :whale: :elephant: :dolphin: :penguin: :rocket: Start Docker LNMP(LEMP) In less than 2 minutes Powered by Docker Compose. 让 PHP 开发者快速(一键)搭建基于容器技术(Docker、Kubernetes)的开发、测试、生产(CI/CD by Drone)环境.
https://docs.lnmp.khs1994.com
Apache License 2.0
659 stars 133 forks source link

请教一下服务启动依赖顺序问题 #1232

Closed cgfeel closed 1 year ago

cgfeel commented 2 years ago

docker-production.online.yml中我启用两个php服务php7php8,并启用一个nginx服务,将nginx服务依赖于php

    depends_on:
      - php7
      - php8

在启动服务的时候$ ./lnmp-docker swarm-deploy,有的时候并非按照顺序执行,就会造成启动服务失败

Creating network lnmp_backend
Creating network lnmp_frontend
...
Creating service lnmp_nginx
Creating service lnmp_redis
Creating service lnmp_php8
Creating service lnmp_php7

打印启动失败容器的日志,提示没有找到php7这项服务

$ docker logs c1b700273884
2022/07/03 16:58:03 [emerg] 1#1: host not found in upstream "php7" in /etc/nginx/conf.d/51baopen.com.conf:17
nginx: [emerg] host not found in upstream "php7" in /etc/nginx/conf.d/51baopen.com.conf:17

于是我把服务关了,重新启动就好了

$ docker stack rm lnmp
$ ./lnmp-docker swarm-deploy
Creating service lnmp_redis
Creating service lnmp_php8
Creating service lnmp_php7
Creating service lnmp_nginx
ID             NAME           IMAGE                          NODE              DESIRED STATE   CURRENT STATE           ERROR     PORTS
pm7da7uhef9o   lnmp_nginx.1   nginx:1.21.3-alpine            VM-20-14-debian   Running         Running 1 second ago              
rkr4skqmsvxd   lnmp_php7.1    khs1994/php:7.4.3-fpm-alpine   VM-20-14-debian   Running         Running 2 seconds ago             
g1h0osyd5pca   lnmp_php8.1    khs1994/php:8.1.1-s6-alpine    VM-20-14-debian   Running         Running 4 seconds ago             
ng6a7j2oj0ev   lnmp_redis.1   redis:7.0.0-alpine             VM-20-14-debian   Running         Running 5 seconds ago 

有的时候需要重启好几次才对,请问这个问题需要怎样解决

pcit-ce[bot] commented 2 years ago

You can writing some word in a comment to trigger action:

dyrnq commented 1 year ago

Recommend use wait4x or wait-for-it.

docker-production.online.yml中我启用两个php服务php7php8,并启用一个nginx服务,将nginx服务依赖于php

    depends_on:
      - php7
      - php8

在启动服务的时候$ ./lnmp-docker swarm-deploy,有的时候并非按照顺序执行,就会造成启动服务失败

Creating network lnmp_backend
Creating network lnmp_frontend
...
Creating service lnmp_nginx
Creating service lnmp_redis
Creating service lnmp_php8
Creating service lnmp_php7

打印启动失败容器的日志,提示没有找到php7这项服务

$ docker logs c1b700273884
2022/07/03 16:58:03 [emerg] 1#1: host not found in upstream "php7" in /etc/nginx/conf.d/51baopen.com.conf:17
nginx: [emerg] host not found in upstream "php7" in /etc/nginx/conf.d/51baopen.com.conf:17

于是我把服务关了,重新启动就好了

$ docker stack rm lnmp
$ ./lnmp-docker swarm-deploy
Creating service lnmp_redis
Creating service lnmp_php8
Creating service lnmp_php7
Creating service lnmp_nginx
ID             NAME           IMAGE                          NODE              DESIRED STATE   CURRENT STATE           ERROR     PORTS
pm7da7uhef9o   lnmp_nginx.1   nginx:1.21.3-alpine            VM-20-14-debian   Running         Running 1 second ago              
rkr4skqmsvxd   lnmp_php7.1    khs1994/php:7.4.3-fpm-alpine   VM-20-14-debian   Running         Running 2 seconds ago             
g1h0osyd5pca   lnmp_php8.1    khs1994/php:8.1.1-s6-alpine    VM-20-14-debian   Running         Running 4 seconds ago             
ng6a7j2oj0ev   lnmp_redis.1   redis:7.0.0-alpine             VM-20-14-debian   Running         Running 5 seconds ago 

有的时候需要重启好几次才对,请问这个问题需要怎样解决

cgfeel commented 1 year ago

Recommend use wait4x or wait-for-it.

docker-production.online.yml中我启用两个php服务php7php8,并启用一个nginx服务,将nginx服务依赖于php

    depends_on:
      - php7
      - php8

在启动服务的时候$ ./lnmp-docker swarm-deploy,有的时候并非按照顺序执行,就会造成启动服务失败

Creating network lnmp_backend
Creating network lnmp_frontend
...
Creating service lnmp_nginx
Creating service lnmp_redis
Creating service lnmp_php8
Creating service lnmp_php7

打印启动失败容器的日志,提示没有找到php7这项服务

$ docker logs c1b700273884
2022/07/03 16:58:03 [emerg] 1#1: host not found in upstream "php7" in /etc/nginx/conf.d/51baopen.com.conf:17
nginx: [emerg] host not found in upstream "php7" in /etc/nginx/conf.d/51baopen.com.conf:17

于是我把服务关了,重新启动就好了

$ docker stack rm lnmp
$ ./lnmp-docker swarm-deploy
Creating service lnmp_redis
Creating service lnmp_php8
Creating service lnmp_php7
Creating service lnmp_nginx
ID             NAME           IMAGE                          NODE              DESIRED STATE   CURRENT STATE           ERROR     PORTS
pm7da7uhef9o   lnmp_nginx.1   nginx:1.21.3-alpine            VM-20-14-debian   Running         Running 1 second ago              
rkr4skqmsvxd   lnmp_php7.1    khs1994/php:7.4.3-fpm-alpine   VM-20-14-debian   Running         Running 2 seconds ago             
g1h0osyd5pca   lnmp_php8.1    khs1994/php:8.1.1-s6-alpine    VM-20-14-debian   Running         Running 4 seconds ago             
ng6a7j2oj0ev   lnmp_redis.1   redis:7.0.0-alpine             VM-20-14-debian   Running         Running 5 seconds ago 

有的时候需要重启好几次才对,请问这个问题需要怎样解决

感谢