运维开发网

使用Dockerfile编写PHP环境

运维开发网 https://www.qedev.com 2020-07-15 11:57 出处:网络 作者:运维开发网整理
准备环境 准备好以下文件 1、crontab 2、default.conf 3、nginx.conf 4、php-docker.conf 5、php.ini 6、php-www.conf 7、sources.list 8、supervisord.conf 编写dockerfile cat dockerfile #使用php-fpm:5.6基础镜像 FROM php:5.6-fpm MAINTAIN
准备环境

准备好以下文件

1、crontab

2、default.conf

3、nginx.conf

4、php-docker.conf

5、php.ini

6、php-www.conf

7、sources.list

8、supervisord.conf

编写dockerfile

cat dockerfile

#使用php-fpm:5.6基础镜像

FROM php:5.6-fpm

MAINTAINER wfy

#使用apt-get源(docker官方镜像系统大多为debian或者Ubuntu,所以使用apt-get安装)

COPY conf/sources.list /etc/apt/sources.list

#先安装php依赖库和常用命令

RUN apt-get update && apt-get install -y \

supervisor cron nginx \

libmagickwand-dev bzip2 libmemcached-dev \

libfreetype6-dev \

libjpeg62-turbo-dev \

libmcrypt-dev libpng-dev \

iproute net-tools telnet wget curl \

&& apt-get clean && rm -r /var/lib/apt/lists/*

#安装php核心扩展

RUN docker-php-ext-install -j$(nproc) iconv mcrypt

#如果安装的扩展需要自定义配置时

RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \

&& docker-php-ext-install -j$(nproc) gd

#pecl 扩展

RUN docker-php-ext-install bcmath dba exif pdo_mysql bz2 zip mysql

#imagick 扩展

RUN pecl install imagick && docker-php-ext-enable imagick

#memcached 扩展

RUN pecl install memcached-2.2.0 && docker-php-ext-enable memcached

#redis 扩展

RUN pecl install redis-4.3.0 && docker-php-ext-enable redis

#soap 扩展

RUN docker-php-ext-install soap && docker-php-ext-enable soap

#配置文件

#php配置文件

ADD conf/php.ini /usr/local/etc/php/php.ini

ADD conf/php-www.conf /usr/local/etc/php-fpm.d/www.conf

ADD conf/php-docker.conf /usr/local/etc/php-fpm.d/docker.conf

#nginx配置文件

ADD conf/nginx.conf /etc/nginx/nginx.conf

ADD conf/default.conf /etc/nginx/conf.d/default.conf

#crontab配置文件

COPY conf/crontab /var/spool/cron/crontabs/root

RUN chmod 600 /var/spool/cron/crontabs/root

#supervisor配置文件

RUN mkdir -p /var/log/supervisor && mkdir -p /var/log/php

ADD conf/supervisord.conf /etc/supervisor/supervisord.conf

#时区环境变量

ENV TZ=Asia/Shanghai \

LANG=en_US.UTF-8

#开放端口

EXPOSE 80

#启动supervisor服务

CMD ["/usr/bin/supervisord","-c","/etc/supervisor/supervisord.conf"]

注:以上的PHP扩展是根据我自己项目需要安装的,如果你想用同样的方式需要根据自己项目环境需要安装即可!

0

精彩评论

暂无评论...
验证码 换一张
取 消