#docker-compose 版本
version: '3'
services:
php:
container_name: php
build: ./dockerfile/php
expose:
- "9000"
ports:
- "9001:9000"
restart: always
volumes:
- /Users/www:/www
- ${ROOT}/docker/logs/php:/var/log/php
- ${ROOT}/docker/conf/php/php.ini:/etc/php/php.ini:rw
- ${ROOT}/docker/conf/php/php-fpm.conf:/etc/php/php-fpm.conf:rw
- ${ROOT}/docker/conf/php-fpm.d:/etc/php/php-fpm.d
##command: php-fpm -y /etc/php/php-fpm.conf -c /etc/php/php.ini
networks:
- lnmp-networks
nginx:
container_name: nginx
build: ./dockerfile/nginx
ports:
- "8081:80"
restart: always
volumes:
- /Users/www:/www
- ${ROOT}/docker/logs/nginx:/var/log/nginx
- ${ROOT}/docker/conf/nginx/conf.d:/etc/nginx/conf.d
- ${ROOT}/docker/conf/nginx/nginx.conf:/etc/nginx/nginx.conf
depends_on:
- php
networks:
- lnmp-networks
networks:
lnmp-networks:
dockerfile 版本
FROM php:7.2-fpm
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && rm -Rf /var/lib/apt/lists/* && cat /etc/apt/sources.list
RUN apt-get update \
&& apt-get install sudo -y \
#安装 vim 文本编辑器
&& apt-get install vim -y \
#安装 wget 下载工具
&& apt-get install wget -y \
#安装网络管理工具
&& apt-get install net-tools -y \
#安装 ping
&& apt-get install iputils-ping -y \
#安装 telnet
&& apt-get install telnet -y \
#安装进程管理命令 ps, top, vmstat, w, kill, free, slabtop, and skill
&& apt-get install procps -y \
#安装 C/C++编译包,该软件包,编译 c/c++所需要的软件包也都会被安装。
#该包包含 gcc,g++,make 等`
&& apt-get install build-essential -y
#安装 zip 依赖 zlib
#ENTRYPOINT php-fpm -c /etc/php/php.ini -y /etc/php/php-fpm.conf
#EXPOSE 9000
如果按现在这种配置的话,php-fpm 是按照默认配置文件来读取的。 但是如果我在 dockerfile 里边或者 docker-compose 里边增加对配置文件的制定,然后就开始报错。
想问下 到底是什么原因造成的。 注释的文件就是我指定的配置文件。
1
awanganddong OP Recreating php ... done
Recreating nginx ... done Attaching to php, nginx php exited with code 0 php exited with code 0 php exited with code 0 php exited with code 0 php exited with code 0 报错信息如上 |
2
Aliencn 2021-07-14 15:07:34 +08:00
加个参数--nodaemonize
|
3
coolcoffee 2021-07-14 15:16:06 +08:00
我觉得没有必要去改启动参数 ENTRYPOINT, 你需要改哪个文件,拉出来改好再映射回原路径就好了。 不然万一镜像升级,启动参数有变化,你到时候又会跑不起来。
|
4
awanganddong OP @Aliencn 我看下
@coolcoffee 我明白你的意思 ``` 这是我问某位大佬的解决方案 你其实想要自定义配置文件 通过挂载的方式随时更改 重启生效 1 方法一 fpm 启动是 -c php.ini -y fpm.conf 指定 2 方法二 把配置文件挂载到 fpm 启动时不带参数的默认路径下的配置文件 ``` |
5
lvdongxiao 2021-07-14 16:29:04 +08:00
fpm 镜像的配置文件默认是 /usr/local/etc/php/php.ini 。你把这个文件复制出来,改好配置。再在 volumes 配置中映射到这个路径
|
6
siguretto 2021-07-14 16:59:16 +08:00
php.ini 或者 php-fpm.conf 有问题吧,其实应该贴出这两个配置文件。
盲猜一个是 fpm 配置设成了 root 用户导致 |
7
awanganddong OP ```
version: '3' services: php: container_name: php # build: ./dockerfile/php image: php:7.2-fpm expose: - "9000" ports: - "9001:9000" restart: always volumes: - /Users/www:/www - /${ROOT}/docker/logs/php:/var/log/php - /${ROOT}/docker/conf/php/php.ini:/etc/php/php.ini:rw - /${ROOT}/docker/conf/php/php-fpm.conf:/usr/local/etc/php-fpm.conf:rw - /${ROOT}/docker/conf/php-fpm.d:/etc/php/php-fpm.d networks: - lnmp-networks nginx: container_name: nginx build: ./dockerfile/nginx ports: - "8081:80" restart: always volumes: - /Users/www:/www - /${ROOT}/docker/logs/nginx:/var/log/nginx - /${ROOT}/docker/conf/nginx/conf.d:/etc/nginx/conf.d - /${ROOT}/docker/conf/nginx/nginx.conf:/etc/nginx/nginx.conf depends_on: - php networks: - lnmp-networks networks: lnmp-networks: ``` 这个是和苹果的一一对应的 |
8
awanganddong OP 找到问题了。
php-fpm 镜像的配置文件,你必须全部复制一遍。这样才可以。 |