docker運行php網站程序


有一個之前的php網站程序需要遷移到K8S,簡單調研了下。

基礎鏡像

官方提供了諸如php:7.1-apache的基礎鏡像,但是確認必要的擴展,例如gd,當然官方提供了docker-php-ext-install命令,可以用來安裝需要的擴展。但是每次構建都重新安裝非常費時,最好的辦法是構建一個包含必要擴展的基礎鏡像。

FROM php:7.1-apache
ENV PORT 80
EXPOSE 80

RUN buildDeps=" \
        default-libmysqlclient-dev \
        libbz2-dev \
        libsasl2-dev \
    " \
    runtimeDeps=" \
        curl \
        git \
        libfreetype6-dev \
        libicu-dev \
        libjpeg-dev \
        libmcrypt-dev \
        libpng-dev \
        libpq-dev \
        libxml2-dev \
    " \
    sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list  \
    && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $buildDeps $runtimeDeps \
    && docker-php-ext-install bcmath bz2 calendar iconv intl mbstring mcrypt mysqli opcache pdo_mysql pdo_pgsql pgsql soap zip \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd \
    && apt-get purge -y --auto-remove $buildDeps \
    && rm -r /var/lib/apt/lists/* 

ENV PATH=$PATH:/root/composer/vendor/bin COMPOSER_ALLOW_SUPERUSER=1

然后構建基礎鏡像

docker build -t common/php:7.1-apache .

PS: 更多的php鏡像,查看 https://github.com/chialab/docker-php

使用基礎鏡像

Dockerfile應用剛構建好的基礎鏡像:

FROM common/php:7.1-apache
ENV PORT 80
EXPOSE 80
COPY . /var/www/html
RUN usermod -u 1000 www-data; \
	a2enmod rewrite; \
	chown -R www-data:www-data /var/www/html

構建即可:

docker build -t common/zhifou:v0.0.12 .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM