天天看點

Docker建構自己的PHP-fpm容器鏡像

0.最新編輯内容請參考:

Dockerfile基于鏡像php:7.2-fpm建構自定義php7.2鏡像

https://blog.csdn.net/one312/article/details/105026554

1.建立一個Dockerfile 并寫入以下内容:

FROM php:5.6-fpm

RUN     apt-get update \

    #cp -r /etc/apt/sources.list /etc/apt/sources.list.bak \

    #修改軟體源

    #

    #&& echo "deb http://mirrors.aliyun.com/debian/ wheezy main non-free contrib" > /etc/apt/sources.list \

    #&& echo "deb http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \

    #&& echo "deb-src http://mirrors.aliyun.com/debian/ wheezy main non-free contrib" >> /etc/apt/sources.list \

    #&& echo "deb-src http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \

    #

    #&& apt-get update \

    #切換目錄

    && cd /tmp \

    #安裝sudo

    && apt-get install sudo -y \

    #安裝vim文本編輯器

    && apt-get install vim -y \

    #安裝wget下載下傳工具

    && apt-get install wget -y \

    #安裝網絡管理工具

    && apt-get install net-tools -y \

    #安裝ping

    && apt-get install iputils-ping -y \

    #安裝telnet

    && apt-get install telnet -y \

    #安裝程序管理指令ps, top, vmstat, w, kill, free, slabtop, and skill

    && apt-get install procps -y \

    #安裝C/C++編譯包,該軟體包,編譯c/c++所需要的軟體包也都會被安裝。

    #該包包含gcc,g++,make等`

    && apt-get install build-essential -y \

    #安裝zip依賴 zlib

    && apt-get install zlib1g-dev -y \

    #安裝zip

    && bash -c "apt-get install unzip -y;" \

    #安裝openssh-server  即sshd

    && apt install -y openssh-server -y \

    #給root使用者設定初始密碼123456

    && echo root:123456 | chpasswd \

    #安裝composer指令

    #下載下傳composer.phar

    && php -r "readfile('https://getcomposer.org/installer');" | php \

    #給composer.phar賦可執行權限

    #将composer.phar複制到/bin/目錄下并重命名為composer

    && mv composer.phar /bin/composer \

    #檢視composer版本

    #composer -v

    #修改composer鏡像源位址為國内位址

    && composer config -g repo.packagist composer https://packagist.phpcomposer.com \

    #安裝php擴充

    #下載下傳

    && wget http://qinqinxia.com/zip-1.13.5.tgz \

    #解壓

    && tar -zvxf zip-1.13.5.tgz \

    #解壓後複制到目錄/usr/local/src

    && cp -r zip-1.13.5 /usr/local/src \

    #切換目錄到/usr/local/src/zip-1.13.5

    && cd /usr/local/src/zip-1.13.5 \

    #安裝php擴充php-zip

    #

    && /usr/local/bin/phpize \

    #

    && ./configure --with-php-config=/usr/local/bin/php-config \

    #

    && make && make install

    # 擴充所在目錄:

    #Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20131226/

    #配置

    #cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

    #vim /usr/local/etc/php/php.ini

    #然後添加配置項extension=zip.so即可

    #composer安裝laravel

    #composer global require laravel/installer

    ############################################################################

    #其中php的官方下載下傳位址 太慢,是以dockerfile中的用的是我自己的站點位址 :

    #php官網各版本下載下傳位址:https://www.php.net/releases/

    #wget https://www.php.net/distributions/php-5.6.40.tar.bz2 #下載下傳太慢可以用迅雷下載下傳後複制過來

2.執行以下指令建構鏡像

docker build -t hengda/php5.6-fpm:v1 .

建構成功會有如下提示:

Docker建構自己的PHP-fpm容器鏡像
Docker建構自己的PHP-fpm容器鏡像
建構期間有紅色waring提示 ,是因為RUN後面有注釋的原因

以hengda/php5.6-fpm:v1鏡像運作一個容器,并命名容器為 hengda-php

docker run -it --name hengda-php hengda/php5.6-fpm:v1 /bin/bash

往php.ini檔案中添加php擴充zip.so

extension=zip.so

進入容器之後安裝laravel 架構源碼

1.進入www目錄執行指令

2.在www目錄下,建立composer.json檔案,并寫入如下配置:

{

    "name": "laravel/laravel",

    "description": "The Laravel Framework.",

    "keywords": ["framework", "laravel"],

    "license": "MIT",

    "type": "project",

    "require": {

        "php": ">=5.5.9",

        "laravel/framework": "5.2.*"

    },

    "config": {

        "preferred-install": "dist"

    },

    "repositories": {

        "packagist": {

            "type": "composer",

            "url": "https://packagist.phpcomposer.com"

        }

    }

}

3.在www目錄執行指令composer install

執行結果:
Docker建構自己的PHP-fpm容器鏡像
檢視vendor/laravel/目錄下的檔案:
Docker建構自己的PHP-fpm容器鏡像
如果不報錯 ,可以安裝成功,那麼 說明建構的 php鏡像 可以使用。