zoukankan      html  css  js  c++  java
  • 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 .
  • 相关阅读:
    指针的学习
    (转)c & c++内存分配
    C++实现String
    c& c++笔试题
    appium python api收集
    公司python入职培训流程
    app端性能测试笔记
    h5 测试关注点
    robot framework 牛刀一试
    adb 安装apk 报错:Failure [INSTALL_FAILED_INVALID_URI]
  • 原文地址:https://www.cnblogs.com/xiaoqi/p/docker-php.html
Copyright © 2011-2022 走看看