docker 構建自己的映象

知风阁發表於2024-05-16

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 映象名稱 . (小點別丟掉了~)就可以了。

相關文章