Docker 构建PHP 镜像环境

这个镜像只是用来处理 CI 流程的
是一个 CentOS7 + php73 + composer 环境

如需要构建 php 其他版本, 可修改 php73 至对应版本

php扩展支持了 sqlsrv , oracle, mongo

不需要支持 oracle 的需要删除相关代码

同级目录还有一个 oracle 文件夹, oracle文件夹下的文件

instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
instantclient-sqlplus-linux.x64-11.2.0.4.0.zip

Dockerfile

FROM centos:7

RUN yum install -y yum-utils epel-release
RUN yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm 

RUN yum install -y zip \
        unzip \
        systemtap-sdt-devel \
        git \
        libaio

RUN curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo \
    && ACCEPT_EULA=Y yum install msodbcsql17 mssql-tools -y \
    && echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc \
    && source ~/.bashrc

COPY ./oracle /usr/local/src/

RUN cd /usr/local/src \
    && unzip instantclient-basic-linux.x64-11.2.0.4.0.zip -d /usr/local \
    && unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip -d /usr/local \
    && unzip instantclient-sqlplus-linux.x64-11.2.0.4.0.zip -d /usr/local \
    && cd /usr/local/instantclient_11_2 \
    && ln -s libclntsh.so.11.1 libclntsh.so \
    && ln -s libocci.so.11.1 libocci.so \
    && echo '/usr/local/instantclient_11_2' > /etc/ld.so.conf.d/oracle-instantclient.conf \
    && ldconfig \
    && echo 'export PATH="$PATH:/usr/local/instantclient_11_2"' >> ~/.bashrc \
    && source ~/.bashrc 

RUN yum install -y php73-php-common \
        php73-php-fpm \
        php73-php-cli \
        php73-php-bcmath \
        php73-php-gd \
        php73-php-json \
        php73-php-mbstring \
        php73-php-mcrypt \
        php73-php-mysqlnd \
        php73-php-opcache \
        php73-php-pdo \
        php73-php-pecl-crypto \
        php73-php-pecl-mcrypt \
        php73-php-pecl-geoip \
        php73-php-recode \
        php73-php-snmp \
        php73-php-soap \
        php73-php-xml \
        php73-php-pear \
        php73-php-devel \
        php73-php-pecl-mongodb \
        php73-pecl-redis \
        php73-php-sqlsrv \
    && ln -s /opt/remi/php73/root/bin/* /usr/bin/ 

RUN curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer

RUN export PHP_DTRACE=yes \
    && pecl channel-update pecl.php.net \
    && sh -c '/bin/echo -e "instantclient,/usr/local/instantclient_11_2" | pecl install oci8-2.2.0' \
    && echo 'extension=oci8.so' >> /etc/opt/remi/php73/php.d/20-oci8.ini
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
1
粉丝
1
喜欢
1
收藏
1
排名:2424
访问:527
私信
所有博文
博客标签
社区赞助商