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

360 天前
 xingfa

请教各位大佬

1568 次点击
所在节点    PHP
10 条回复
OceanBreeze
360 天前
监听 -> 守护吧。supervisord 也完全可以在容器内运行,楼主有什么问题?
lzj307077687
360 天前
我的 supervisord 是用 docker exec
poisedflw
360 天前
CMD ["/usr/bin/supervisord", "--nodaemon", "--configuration", "/etc/supervisor/supervisord.conf"]
kilvn
360 天前
hongfs
360 天前
尝试下 pm2 ?
hefish
360 天前
用 supervisord 来启动 nginx 和 php-fpm 吧。 至少我是这么干的。 楼上有大佬说 pm2 ,嗯,得空去研究一下。
darklost
360 天前
开个容器专门跑 supervisord php-worker
pota
360 天前
单独用一个容器使用 supervisord 去守护 cli
brader
360 天前
大概就是这样子弄:
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
359 天前
@hefish 哈哈 pm2 未尝不可

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

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

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

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

© 2021 V2EX