docker php-fpm 镜像设置容器开启自启服务
背景
官方 php-fpm 镜像在容器启动之后只能启动 php-fpm 服务,如果想要设置crontab、rsyslog 等自定义服务开机启动则可以使用 dockerfile 中的
ENTRYPOINT
ENTRYPOINT
的作用是在容器启动之前做一些初始化配置或者一些自定义的配置等
目录结构如下
[root@test dockerfile]#tree
├── php-fpm
├── php-fpm-script
│ └── entrypoint.sh
脚本内容如下
[root@test dockerfile]# cat php-fpm-script/entrypoint.sh
#!/bin/bash
/etc/init.d/cron restart &
/etc/init.d/rsyslog restart &
docker-php-entrypoint php-fpm
dockerfile 关键代码
# 将脚本复制到镜像根目录并赋予 x 权限
COPY ./php-fpm-script/entrypoint.sh /
RUN chmod +x /entrypoint.sh
# 设置 ENTRYPOINT
ENTRYPOINT /entrypoint.sh
这样容器启动后就会执行 entrypoint.sh 脚本,启动 cron 、rsyslog 和 fpm