nginx+php的新基礎鏡像制作全過程
前言
服務器需要提前安裝好docker;構建的新鏡像用于快速部署新項目;
一、運行alpine容器
通過如下命令查找鏡像
docker search alpine
如下圖所示,就是命令返回的結果,OFFICIAL有[OK]的標識的是docker官方制作的鏡像

我們通過如下命令拉取鏡像
docker pull alpine
接著我們通過如下命令啟動一個alpine容器
docker run -it alpine /bin/sh
二、安裝nginx
1、安裝pcre執(zhí)行如下命令,分別為下載源碼、解壓、進入相應目錄、安裝
cd /root wget http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz tar -xvf pcre-8.45.tar.gz cd pcre-8.45 ./configure make && make install
2、安裝nginx執(zhí)行如下命令,分別為下載源碼、解壓、進入相應目錄、安裝
cd /root wget https://nginx.org/download/nginx-1.24.0.tar.gz tar -xvf nginx-1.24.0.tar.gz cd nginx-1.24.0 ./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre-8.45 make && make install
3、安裝成功之后驗證下nginx是否可以正常執(zhí)行,執(zhí)行如下命令
/usr/local/nginx/sbin/nginx -t
一切正常會返回如下內容

至此nginx就已經安裝完成了,剩下只是配置問題;接下來就是如何安裝php?
三、安裝php
1、因為alpine鏡像使用的是apk包管理,我們需要更換國內源地址,執(zhí)行如下命令更好為阿里云地址
vi /etc/apk/repositories https://mirrors.aliyun.com/alpine/v3.15/main https://mirrors.aliyun.com/alpine/v3.15/community
2、安裝相關依賴,執(zhí)行如下命令
sudo apk update sudo apk add --no-cache gcc g++ make cmake pkgconf sqlite-dev libxml2-dev openssl openssl-dev libcurl curl-dev oniguruma-dev
3、安裝php執(zhí)行如下命令,分別為下載源碼、解壓、進入相應目錄、安裝
cd /root wget https://www.php.net/distributions/php-8.3.3.tar.gz tar -xvf php-8.3.3.tar.gz cd php-8.3.3 || exit ./configure --prefix=/usr/local/php \ --with-openssl \ --with-curl \ --with-zlib \ --with-mysqli \ --with-pdo-mysql \ --enable-cli \ --enable-fpm \ --enable-xml \ --enable-mbstring make && make install
4、安裝成功之后驗證下php是否可以正常執(zhí)行,執(zhí)行如下命令
/usr/local/php/bin/php -v
一切正常會返回如下內容

5、驗證php-fpm是否可以正常執(zhí)行,執(zhí)行如下命令
/usr/local/php/sbin/php-fpm -t
一切正常會返回如下內容

至此php就已安裝完成,剩下的就是相關的配置了。
四、刪除相關依賴
為什么要刪除相關依賴?主要是減輕后續(xù)生成鏡像時候的大小。
執(zhí)行如下命令刪除
sudo apk del gcc g++ make cmake pkgconf libxml2-dev openssl openssl-dev libcurl curl-dev
五、默認腳本
添加默認腳本,用于啟動php-fpm、nginx;
執(zhí)行如下命令
vi /start.sh #!/bin/sh /usr/local/php/sbin/php-fpm /usr/local/nginx/sbin/nginx -g "daemon off;"
六、構建新基礎鏡像
在宿主機執(zhí)行如下命令,根據之前的容器構建成鏡像
docker commit -m"nginx-php8.3.3" 26dfff78bfa1 ayzen/nginx-php8.3.3
-m:提交的描述信息
26dfff78bfa1:第一步運行時的容器id
ayzen/nginx-php8.3.3:要創(chuàng)建的目標鏡像名,未帶版本號默認為latest
七、驗證新鏡像
在宿主機執(zhí)行如下命令,使用新鏡像運行一個容器
docker run -itd -p 8083:80 --name test ayzen/nginx-php8.3.3 /start.sh
驗證服務是否有啟動,執(zhí)行如下命令
curl http://127.0.0.1:8083
一切正常會返回如下nginx內容

總結
以上就是nginx+php的新基礎鏡像制作全過程的詳細內容,更多關于nginx php鏡像制作的資料請關注腳本之家其它相關文章!
相關文章
Nginx報錯host not found in upstream的解決辦法
本文主要介紹了Nginx報錯host not found in upstream的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08

