Я создаю проект PHP (Phalcon), используя docker compose.Изображение адаптировано на основе проекта webdevops .На нашем производстве, в постановке и на моей собственной машине конфигурация docker-compose работает нормально.Но есть ошибка в одном из моих командных компьютеров, несмотря на похожий конфиг, и мы используем один и тот же образ.
Вот docker-compose.yml
version: '3'
networks:
dev_vm:
external:
name: dev_vm
services:
traefik:
image: traefik:1.6-alpine
container_name: traefik
ports:
- "80:80"
- "8080:8080"
- "443:443"
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:monitor.vm
- traefik.port=8080
- traefik.docker.network=dev_vm
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik/traefik.toml:/traefik.toml:ro
- ./traefik/acme:/etc/traefik/acme
networks:
- dev_vm
mysql:
image: mariadb:10.2
container_name: mysql
ports:
- "3306:3306"
networks:
- dev_vm
volumes:
- ./data/mysql:/docker-entrypoint-initdb.d
- ./var/lib/mysql:/var/lib/mysql
- ./conf/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
env_file:
- variables.env
phpmyadmin:
image: phpmyadmin/phpmyadmin:4.7
container_name: phpmyadmin
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:pma.vm
- traefik.port=80
- traefik.docker.network=dev_vm
depends_on:
- mysql
networks:
dev_vm:
env_file:
- variables.env
queue:
container_name: queue
image: gamalan/beanstalk-docker:latest
ports:
- "11300:11300"
networks:
- dev_vm
volumes:
- beanstalk:/var/lib/beanstalkd
env_file:
- variables.env
bean_console:
container_name: bean_console
image: kusmierz/beanstalk-console:latest
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:bean.vm
- traefik.port=80
- traefik.docker.network=dev_vm
networks:
- dev_vm
depends_on:
- queue
env_file:
- variables.env
elasticsearch:
container_name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
networks:
- dev_vm
redis:
container_name: redis
image: redis:3.2-alpine
ports:
- "6379:6379"
networks:
- dev_vm
volumes:
- redis:/data
- ./redis_passwd:/run/secrets/redis-pass
environment:
REDIS_PASS_FILE: /run/secrets/redis-pass
command: [
"sh", "-c",
'
docker-entrypoint.sh
--requirepass "$$(cat $$REDIS_PASS_FILE)"
'
]
appmain:
container_name: appmain
image: gamalan/phalcon-nginx:7.2-dev
working_dir: /project
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:app.vm
- traefik.port=80
- traefik.docker.network=dev_vm
networks:
dev_vm:
aliases:
- "app.vm"
volumes:
- ./application/project:/project
- ./conf/nginx/location-root.conf:/opt/docker/etc/nginx/vhost.common.d/10-location-root.conf
#delete unnecessary depend
depends_on:
- mysql
- queue
- redis
env_file:
- app-kirim-main.env
volumes:
beanstalk:
driver: local
redis:
driver: local
esdata1:
driver: local
ВотДокер записывает в журнал мою команду:
-> Executing /opt/docker/provision/entrypoint.d/05-permissions.sh
-> Executing /opt/docker/provision/entrypoint.d/20-nginx.sh
-> Executing /opt/docker/provision/entrypoint.d/20-php-fpm.sh
-> Executing /opt/docker/provision/entrypoint.d/20-php.sh
-> Executing /opt/docker/provision/entrypoint.d/fix-permission.sh
-> Executing /opt/docker/bin/service.d/supervisor.d//10-init.sh
2018-11-27 02:43:50,891 CRIT Set uid to user 0
2018-11-27 02:43:50,892 INFO Included extra file "/opt/docker/etc/supervisor.d/cron.conf" during parsing
2018-11-27 02:43:50,892 INFO Included extra file "/opt/docker/etc/supervisor.d/dnsmasq.conf" during parsing
2018-11-27 02:43:50,892 INFO Included extra file "/opt/docker/etc/supervisor.d/nginx.conf" during parsing
2018-11-27 02:43:50,892 INFO Included extra file "/opt/docker/etc/supervisor.d/php-fpm.conf" during parsing
2018-11-27 02:43:50,892 INFO Included extra file "/opt/docker/etc/supervisor.d/postfix.conf" during parsing
2018-11-27 02:43:50,892 INFO Included extra file "/opt/docker/etc/supervisor.d/ssh.conf" during parsing
2018-11-27 02:43:50,892 INFO Included extra file "/opt/docker/etc/supervisor.d/syslog.conf" during parsing
2018-11-27 02:43:50,899 INFO RPC interface 'supervisor' initialized
2018-11-27 02:43:50,900 INFO supervisord started with pid 1
2018-11-27 02:43:51,903 INFO spawned: 'syslogd' with pid 50
2018-11-27 02:43:51,904 INFO spawned: 'nginxd' with pid 51
2018-11-27 02:43:51,907 INFO spawned: 'php-fpmd' with pid 52
2018-11-27 02:43:51,909 INFO spawned: 'crond' with pid 53
-> Executing /opt/docker/bin/service.d/syslog-ng.d//10-init.sh
2018-11-27 02:43:51,912 INFO success: nginxd entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2018-11-27 02:43:51,912 INFO success: php-fpmd entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2018-11-27 02:43:51,912 INFO success: crond entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
-> Executing /opt/docker/bin/service.d/nginx.d//10-init.sh
-> Executing /opt/docker/bin/service.d/php-fpm.d//10-init.sh
-> Executing /opt/docker/bin/service.d/cron.d//10-init.sh
Setting php-fpm user to application
[SYSLOG] syslog-ng[50]: syslog-ng starting up; version='3.8.1'
[SYSLOG] cron[53]: (CRON) INFO (pidfile fd = 3)
[SYSLOG] cron[53]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
[27-Nov-2018 02:43:51] NOTICE: fpm is running, pid 52
[27-Nov-2018 02:43:51] NOTICE: ready to handle connections
2018-11-27 02:43:52,994 INFO success: syslogd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018/11/27 02:44:04 [error] 69#69: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
[27-Nov-2018 02:44:04] WARNING: [pool www] child 73 exited on signal 4 (SIGILL - core dumped) after 12.033304 seconds from start
[27-Nov-2018 02:44:04] NOTICE: [pool www] child 89 started
127.0.0.1 - - [27/Nov/2018:02:44:04 +0000] "GET / HTTP/1.1" 502 173 "-" "curl/7.52.1"
2018/11/27 02:44:27 [error] 69#69: *3 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
127.0.0.1 - - [27/Nov/2018:02:44:27 +0000] "GET / HTTP/1.1" 502 173 "-" "curl/7.52.1"
[27-Nov-2018 02:44:27] WARNING: [pool www] child 74 exited on signal 4 (SIGILL - core dumped) after 35.759019 seconds from start
[27-Nov-2018 02:44:27] NOTICE: [pool www] child 92 started
2018/11/27 02:45:50 [error] 69#69: *5 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET /index.php?_url=/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
127.0.0.1 - - [27/Nov/2018:02:45:50 +0000] "GET /index.php?_url=/ HTTP/1.1" 502 173 "-" "curl/7.52.1"
[27-Nov-2018 02:45:50] WARNING: [pool www] child 88 exited on signal 4 (SIGILL - core dumped) after 106.809806 seconds from start
[27-Nov-2018 02:45:50] NOTICE: [pool www] child 152 started
2018/11/27 02:45:56 [error] 69#69: *7 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET /index.php?_url=dashboard HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
127.0.0.1 - - [27/Nov/2018:02:45:56 +0000] "GET /index.php?_url=dashboard HTTP/1.1" 502 173 "-" "curl/7.52.1"
[27-Nov-2018 02:45:56] WARNING: [pool www] child 89 exited on signal 4 (SIGILL - core dumped) after 112.188027 seconds from start
[27-Nov-2018 02:45:56] NOTICE: [pool www] child 155 started
127.0.0.1 - - [27/Nov/2018:02:46:34 +0000] "GET /maintenance.html HTTP/1.1" 200 2178 "-" "curl/7.52.1"
2018/11/27 02:47:11 [error] 69#69: *10 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
[27-Nov-2018 02:47:11] WARNING: [pool www] child 92 exited on signal 4 (SIGILL - core dumped) after 163.832662 seconds from start
127.0.0.1 - - [27/Nov/2018:02:47:11 +0000] "GET / HTTP/1.1" 502 173 "-" "curl/7.52.1"
[27-Nov-2018 02:47:11] NOTICE: [pool www] child 160 started
[php-fpm:access] 127.0.0.1 - 27/Nov/2018:02:48:27 +0000 "GET /info.php" 200 /project/public/info.php 914.436 2048 10.94%
127.0.0.1 - - [27/Nov/2018:02:48:27 +0000] "GET /info.php HTTP/1.1" 200 132955 "-" "curl/7.52.1"
[php-fpm:access] 127.0.0.1 - 27/Nov/2018:02:48:47 +0000 "GET /info.php" 200 /project/public/info.php 60.519 2048 99.14%
172.22.0.4 - - [27/Nov/2018:02:48:47 +0000] "GET /info.php HTTP/1.1" 200 33154 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0"
Сначала я предполагаю, что это была проблема с памятью, но когда я проверяю, на машине достаточно свободной памяти.Также phpMyAdmin и другие контейнеры работают нормально.Если это был код, то он обязательно сломается и в других средах, но не сломается, даже на нашем промежуточном сервере или сервере prod.
Итак, в настоящее время я в тупике, в чем именно причина.Поскольку эта же конфигурация была протестирована в ArchLinux, Ubuntu 18.04, CentOS 7 и Windows 10, и она работает нормально, но для некоторых других она работает не так, как ожидалось.Кто-нибудь может мне помочь?