dnmp
dnmp copied to clipboard
有个疑惑 php:${PHP_VERSION}-fpm-alpine 和 php:${PHP_VERSION}-cli-alpine 的区别
php:${PHP_VERSION}-fpm-alpine 是不是包含了 php:${PHP_VERSION}-cli-alpine? php:${PHP_VERSION}-cli-alpine仅有cli功能没有 php-fpm?
fpm
主要针对传统需要网页访问的模式,cli
主要针对命令行就能运行程序不需要经过nginx接收数据转发
fpm包含了cli
fpm包含了cli
请教一下 ,在 php:${PHP_VERSION}-fpm-alpine 的Dockerfile中添加了
...
RUN apk --no-cache add tzdata \
supervisor \
...
COPY supervisord.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
希望php:${PHP_VERSION}-fpm-alpine支持守护进程,但ENTRYPOINT应该是把fpm的启动命令覆盖了,所以不得已用php:${PHP_VERSION}-cli-alpine 这个镜像添加上面的代码,可以实现使用守护进程,这种单独容器的做法,应是推荐的方式,但我希望在一个fpm内实现守护进程,该怎么做。
[program:php-fpm] command = /usr/local/sbin/php-fpm directory = /www user = root autorestart = true autostart = true redirect_stderr = true stdout_logfile = /var/log/php/php-fpm.log stdout_logfile_maxbytes = 10MB stdout_logfile_backups = 10
文件写到services/php/supervisor.d/phpfpm.ini docker-compose.yml再增加一个目录挂载配置
- ./services/php/supervisor.d:/etc/supervisor.d/:rw
最后在dockerfile中加一句话,主要是可以去掉supervisord的注释
RUN sed -i "s/;pidfile=/pidfile=/g" /etc/supervisord.conf