有一個以前的php網站程序須要遷移到K8S,簡單調研了下。php
基礎鏡像
官方提供了諸如php:7.1-apache的基礎鏡像,可是確認必要的擴展,例如gd,固然官方提供了docker-php-ext-install
命令,能夠用來安裝須要的擴展。可是每次構建都從新安裝很是費時,最好的辦法是構建一個包含必要擴展的基礎鏡像。html
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
而後構建基礎鏡像mysql
docker build -t common/php:7.1-apache .
PS: 更多的php鏡像,查看 https://github.com/chialab/docker-phpgit
使用基礎鏡像
Dockerfile應用剛構建好的基礎鏡像:github
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
構建便可:sql
docker build -t common/zhifou:v0.0.12 .