docker 构建自己的镜像

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 镜像名称 . (小点别丢掉了~)就可以了。

 

posted @ 2024-05-16 00:09  知风阁  阅读(10)  评论(0编辑  收藏  举报