Docker-compose+Dockerfile构建并启动php7.4镜像

利用官方镜像+Dockerfile构建符合自己要求php7.4镜像

DockerFile

  • apt官方源太慢时,切换apt源
  • 该dockerfile支持的php额外扩展 bcmatch event exif gd mysqli iconv pcntl pdo_mysql redis sockets opcache
  • 来源 php:7.4.33-fpm
FROM php:7.4.33-fpm
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#切换apt源 需要就放开
#RUN mv  /etc/apt/sources.list  /etc/apt/sources.list.bak
#ADD sources.list /etc/apt/
#RUN cat /etc/apt/sources.list
RUN apt-get clean all && apt-get update && apt-get install -y \
#部分调试工具,线上环境不需要
#telnet curl vim inetutils-ping \
libevent-dev pkg-config libxml2 libxml2-dev openssl libssl-dev sqlite3 \
libsqlite3-dev libpng-dev libjpeg-dev libfreetype-dev \
 && docker-php-ext-install pdo_mysql mysqli \
 && docker-php-ext-install bcmath exif gd iconv pcntl

RUN pecl install redis && docker-php-ext-enable redis \
&& docker-php-ext-install sockets && docker-php-ext-enable sockets \
&& pecl install event-3.0.6 && docker-php-ext-enable event \
&&  rm -rf /tmp/pear

#安装compose
RUN curl -sS https://getcomposer.org/installer | php -- \
--install-dir=/usr/bin --filename=composer
RUN  chmod a+x /usr/bin/composer \
    && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
EXPOSE 9000

同级目录的 sources.list文件,需要切换apt源时使用

#http://mirrors.163.com/debian/为软件源也可以为其他的 bullseye为版本代号 main non-free contrib区别如下
deb http://mirrors.163.com/debian/ bullseye main non-free contrib
deb http://mirrors.163.com/debian/ bullseye-updates main non-free contrib
deb http://mirrors.163.com/debian/ bullseye-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye-backports main non-free contrib
#deb http://mirrors.163.com/debian-security/ bullseye/updates main non-free contrib
#deb http://mirrors.ustc.edu.cn/debian-security/ bullseye/updates main non-free contrib
#deb-src http://mirrors.163.com/debian-security/ bullseye/updates main non-free contrib
#deb-src http://mirrors.ustc.edu.cn/debian-security/ bullseye/updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian-security/ stable-security main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian-security/ stable-security main non-free contrib

Docker-compose

  • 挂载文件php.ini php-fpm.conf
  • stdin_open与 tty 用于执行常驻脚本
  • 构建后镜像名称 php:7.4-local
  • fpm reload 宿主机指令: docker exec php kill -USR2 1
  • cli 宿主机指令 docker exec php php ${WWW_DIR}/cli.php 
  • .env配置 WWW_DIR挂载项目路径
  • docker-compose up  首次启动会构建镜像
version: "3"
networks:
  webnet:
    driver: bridge
services:
  php:
    build: ./php
    image: php:7.4-local
    container_name: php
    restart: always
    expose:
      - 9000
    stdin_open: true
    tty: true
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ${WWW_DIR}:/www
      - ./php/etc/php.ini:/usr/local/etc/php/php.ini
      - ./php/etc/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf
    networks:
      - webnet

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Compose是一个用于定义和运行多个Docker容器的工具。通过使用Docker Compose,您可以快速搭建LNMP(Linux、Nginx、MySQL、PHP)开发环境。下面是一个快速搭建LNMP开发环境的示例docker-compose.yml文件: ```yaml version: '3' services: nginx: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./html:/usr/share/nginx/html depends_on: - php php: image: php:7.4-fpm volumes: - ./php.ini:/usr/local/etc/php/php.ini - ./html:/var/www/html depends_on: - mysql mysql: image: mysql:latest ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=your_password volumes: - ./mysql:/var/lib/mysql ``` 在上面的示例中,我们定义了三个服务:nginx、php和mysql。nginx服务使用nginx:latest镜像,并将主机的80端口映射到容器的80端口。同时,我们将nginx.conf文件和html文件夹分别挂载到容器内的对应路径。php服务使用php:7.4-fpm镜像,并将php.ini文件和html文件夹挂载到容器内的对应路径。mysql服务使用mysql:latest镜像,并将主机的3306端口映射到容器的3306端口。我们还设置了MYSQL_ROOT_PASSWORD环境变量,并将mysql文件夹挂载到容器内的/var/lib/mysql路径。 要快速搭建LNMP开发环境,您只需在包含docker-compose.yml文件的目录中运行以下命令: ```shell docker-compose up -d ``` 这将启动所有定义的服务,并将它们放在后台运行。现在,您可以通过访问http://localhost来访问您的LNMP开发环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值