PHP
php:8.0.28-fpm
v0.01 初始化
安装软件:Vim
Cron
Composer
安装扩展:
bcmath
Core
ctype
curl
date
dom
fileinfo
filter
ftp
gd
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xlswriter
xml
xmlreader
xmlwriter
zip
zlib
DockerFile文件:php_8.0.28.v0.01
FROM php:8.0.28-fpm
LABEL org.opencontainers.image.authors="Xiaoyuan Shu <sxy@shuxiaoyuan.com>;<shuxiaoyuan520@gmail.com>" \
org.opencontainers.image.version="v0.0.1" \
org.opencontainers.image.description="第一个基础测试版本,安装软件有:vim,cron,composer、安装的扩展有:"
WORKDIR /www
# 构建 xlswriter 扩展,根据自身需要替换版本号
ENV XLSWRITER_VERSION 1.5.1
RUN set -eux \
&& apt-get update \
&& apt-get install -y vim \
&& apt-get install -y cron \
&& apt-get install -y zlib1g-dev \
&& apt-get install -y libzip-dev \
&& apt-get install -y libpng-dev \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install zip \
&& docker-php-ext-install bcmath \
&& docker-php-ext-install gd \
&& pecl install -o -f redis \
&& pecl install -o -f xlswriter \
&& docker-php-ext-enable redis\
&& docker-php-ext-enable xlswriter\
&& cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini \
&& cd /root \
# 编译安装 xlswriter
# && curl -fsSL "https://pecl.php.net/get/xlswriter-${XLSWRITER_VERSION}.tgz" -o xlswriter.tgz \
# && mkdir -p /tmp/xlswriter \
# && tar -xf xlswriter.tgz -C /tmp/xlswriter --strip-components=1 \
# && rm xlswriter.tgz \
# && cd /tmp/xlswriter \
# && phpize \
# && ./configure --enable-reader \
# && make \
# && make install
&& php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" \
&& php composer-setup.php \
&& mv composer.phar /usr/local/bin/composer \
&& composer config -g repo.packagist composer https://mirrors.aliyun.com/composer \
&& service cron start \
&& rm -rf /tmp/pear \
&& service cron start \
&& echo "alias ls='ls --color=auto'" >> /root/.bashrc \
&& echo "alias ll='ls --color=auto -la'" >> /root/.bashrc
# 编译安装后不会自动加载,需要配置到 php.ini 文件里面
# RUN echo "extension=xlswriter.so" > /usr/local/etc/php/php.ini
编译 DockerFile 文件
docker build -f .\php_8.0.28.v0.0.1 -t shuxiaoyuan/php:8.0.28.v0.01 .
运行容器,查看个软件和扩展是否安装成功:
docker run --name test -d shuxiaoyuan/php:8.0.28.v0.01
v0.02 添加 mcrypt
扩展
添加扩展:mcrypt
DockerFile文件:php_8.0.28.v0.02
FROM shuxiaoyuan/php:8.0.28.v0.01
LABEL org.opencontainers.image.authors="Xiaoyuan Shu <sxy@shuxiaoyuan.com>;<shuxiaoyuan520@gmail.com>" \
org.opencontainers.image.version="v0.0.2" \
org.opencontainers.image.description="添加 mcrypt 扩展"
WORKDIR /www
RUN set -eux \
&& apt-get update \
&& apt-get install -y libmcrypt-dev \
&& pecl install mcrypt \
&& docker-php-ext-enable mcrypt
编译 DockerFile 文件
docker build -f .\php_8.0.28.v0.02 -t shuxiaoyuan/php:8.0.28.v0.02 .
安装后的扩展列表
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
fileinfo
filter
ftp
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xlswriter
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
php:8.1-fpm
v1
FROM php:8.1-fpm
LABEL org.opencontainers.image.authors="Xiaoyuan Shu <sxy@shuxiaoyuan.com>;<shuxiaoyuan520@gmail.com>" \
org.opencontainers.image.version="v1" \
org.opencontainers.image.description="第一个基础版本"
WORKDIR /www
RUN set -eux \
&& apt-get update \
&& apt-get install -y zlib1g-dev \
&& apt-get install -y libzip-dev \
&& apt-get install -y libpng-dev \
&& apt-get install -y libmcrypt-dev \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install zip \
&& docker-php-ext-install bcmath \
&& docker-php-ext-install gd \
&& cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini \
&& echo "alias ls='ls --color=auto'" >> /root/.bashrc \
&& echo "alias ll='ls --color=auto -la'" >> /root/.bashrc
# 安装 vim
RUN apt-get install -y vim
# 安装 cron
RUN apt-get install -y cron \
&& service cron start
# 安装 Redis
RUN pecl install -o -f redis \
&& docker-php-ext-enable redis
# 安装 mcrypt
RUN pecl install -o -f mcrypt \
&& docker-php-ext-enable mcrypt
# 安装 xlswriter
RUN pecl install -o -f xlswriter \
&& docker-php-ext-enable xlswriter
# 安装 composer
RUN php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" \
&& php composer-setup.php \
&& mv composer.phar /usr/local/bin/composer \
&& composer config -g repo.packagist composer https://mirrors.aliyun.com/composer \
&& rm -rf composer-setup.php
# 清理临时文件
RUN rm -rf /tmp/pear
v2: 安装 pdo_pgsql
扩展
FROM shuxiaoyuan/php:8.1.v1
LABEL org.opencontainers.image.authors="Xiaoyuan Shu <sxy@shuxiaoyuan.com>;<shuxiaoyuan520@gmail.com>" \
org.opencontainers.image.version="v2" \
org.opencontainers.image.description="添加 pgsql"
WORKDIR /www
# 安装PostgreSQL客户端库
RUN apt-get update \
&& apt-get install -y libpq-dev
# 安装PHP的PDO PostgreSQL扩展
RUN docker-php-ext-install pdo_pgsql
# 清理临时文件
RUN rm -rf /tmp/pear
v3: 安装 wkhtmltopdf
FROM shuxiaoyuan/php:8.1.v2
LABEL org.opencontainers.image.authors="Xiaoyuan Shu <sxy@shuxiaoyuan.com>;<shuxiaoyuan520@gmail.com>" \
org.opencontainers.image.version="v3" \
org.opencontainers.image.description="安装 wkhtmltoxpdf"
WORKDIR /www
# 安装 wkhtmltopdf
# 安装路径: /usr/bin/wkhtmltopdf /usr/bin/wkhtmltoimage
RUN set -eux \
&& apt-get update \
&& apt-get install -y wkhtmltopdf \
&& apt-get install -y wget
# 安装中文字体
RUN cd /usr/share/fonts \
&& wget https://beego-gz-study-1252088954.cos.ap-guangzhou.myqcloud.com/test/simsun.ttc
# 清理临时文件
RUN rm -rf /tmp/pear