laravel 部署在 docker 里面如何 supervisord 监听一些东西?

2023-11-14 02:22:52 +08:00
 xingfa

请教各位大佬

1610 次点击
所在节点    PHP
10 条回复
OceanBreeze
2023-11-14 05:53:44 +08:00
监听 -> 守护吧。supervisord 也完全可以在容器内运行,楼主有什么问题?
lzj307077687
2023-11-14 08:08:17 +08:00
我的 supervisord 是用 docker exec
poisedflw
2023-11-14 08:28:49 +08:00
CMD ["/usr/bin/supervisord", "--nodaemon", "--configuration", "/etc/supervisor/supervisord.conf"]
kilvn
2023-11-14 10:03:33 +08:00
hongfs
2023-11-14 10:07:49 +08:00
尝试下 pm2 ?
hefish
2023-11-14 10:18:06 +08:00
用 supervisord 来启动 nginx 和 php-fpm 吧。 至少我是这么干的。 楼上有大佬说 pm2 ,嗯,得空去研究一下。
darklost
2023-11-14 10:20:32 +08:00
开个容器专门跑 supervisord php-worker
pota
2023-11-14 10:33:09 +08:00
单独用一个容器使用 supervisord 去守护 cli
brader
2023-11-14 10:51:36 +08:00
大概就是这样子弄:
api_dockerfile:
```
FROM my_php
COPY ./ /app
WORKDIR /app
COPY ./docker/php-fpm/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN rm -rf /app/docker \
&& chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["php-fpm"]
```

docker-entrypoint.sh
```
#!/bin/sh

composer install
php artisan storage:link
php artisan migrate
php artisan make:lang-json
chown -R www-data:www-data lang/ storage/
service supervisor start
supervisorctl reread
supervisorctl update
supervisorctl start laravel-worker:*
exec docker-php-entrypoint "$@"
```

laravel-worker.conf:
```
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /app/artisan queue:work --sleep=2 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/root/laravel-worker.log
stopwaitsecs=3600
```
xingfa
2023-11-14 22:50:44 +08:00
@hefish 哈哈 pm2 未尝不可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/991656

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX