docker镜像仓库的镜像,很多时候不能满足我们的使用。比如,需要一个安装了redis、swoole、mongodb、pdo扩展的php7.4版本的扩展,从哪里获取呢?这时候,就能用到今天这篇文档了。
docker 可以通过Dockerfile文件,来构建自己的专属镜像。那么,究竟怎么操作呢?
# 基础镜像选择swoole官方的版本,当然也可以选择php:7.4-cli 它是PHP的命令行版本 FROM phpswoole/swoole:5.1.2-php8.1# 更新软件包列表并安装编译依赖 RUN apt-get update && apt-get install -y \git \make \gcc \g++ \curl \libssl-dev \libxml2-dev \zip \unzip# 安装php扩展 RUN docker-php-ext-install intl RUN docker-php-ext-configure intl# 安装Redis扩展 RUN pecl install redis && docker-php-ext-enable redis# 安装MongoDB扩展 #RUN pecl install mongodb && docker-php-ext-enable mongodb# 安装fileinfo扩展 RUN docker-php-ext-install fileinfo RUN docker-php-ext-install opcache# 安装mysqli扩展 RUN docker-php-ext-install mysqli# 安装PDO扩展 RUN docker-php-ext-install pdo pdo_mysql# 清理缓存文件 RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*# 设置时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
如果需要什么扩展,自己去RUN docker-php-ext-install ***加即可。这里提一句,若FROM 选择了,php:7.4-cli,这个是官方的源,那么安装swoole就得使用pecl install swoole-版本号去处理了。还需要去启用扩展,删除禁用函数等等操作,还是比较啰嗦的。
这里推荐使用swoole的官方源,已经集成好了swoole的php对应版本源,这样就直接安装其他扩展即可!!!
https://github.com/swoole/docker-swoole?tab=readme-ov-file 自己选择合适的版本去使用,非常方便。
最后执行,docker build -t 镜像名称 . (小点别丢掉了~)就可以了。