docker 环境下的 php +nginx的 alpine版本

19 篇文章 0 订阅
13 篇文章 0 订阅

Dockerfile-alpine

FROM php:7.1-fpm-alpine3.10
#php fpm 的 alpine 版本
ENV TIMEZONE Asia/Shanghai
#环境变量设置时区
RUN echo -e "https://mirrors.aliyun.com/alpine/v3.10/main/\n\
https://mirrors.aliyun.com/alpine/v3.10/community" > /etc/apk/repositories \
#上面两个阿里镜像地址 覆盖到 /etc/apk/repositories 文件里 其中, -e 是解析转义字符, > 覆盖  >>追加
    && apk update \
    # apk update  apk 是alpine的包管理工具  类似 yum,get-apt 等, apk update 就是更新最新镜像
    && apk add --no-cache nginx tzdata freetype freetype-dev libiconv libpng libpng-dev libjpeg-turbo libjpeg-turbo-dev libmcrypt-dev libxml2-dev \
    # apk add --no-cache 不使用本地镜像源缓存,相当于先执行update,再执行add
    # nginx  大家都知道 ,反向代理服务器
    # tzdata 时间插件
    # freetype 字体插件
    # freetype-dev 字体开发包
    # libiconv 文字转码
    # libpng libpng-dev  图形库
    # libjpeg-turbo libjpeg-turbo-dev  jpeg 图形转换库
    # libmcrypt-dev 是加密算法扩展库
    && apk add --no-cache  --virtual .build-deps g++ make autoconf \
    #  --virtual 这意味着当您安装软件包时,这些软件包不会添加到全局软件包中。这种变化可以很容易地恢复。
    # 所以,如果我需要gcc来编译程序,但是一旦		程序被编译,我就不再需要gcc了。
    # 程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库
	# 我可以在虚拟包中安装gcc和其他必需的包,并且可以删除所有依赖项,并删除此虚拟包名称。以下是示例用法
	# 使用automake、autoconf生成configure文件
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    # docker-php-ext-configure 配置gd库
    && docker-php-ext-install  pdo_mysql opcache mysqli -j$(nproc) gd zip mcrypt sockets sysvsem xmlrpc soap \
    # 安装 mysqlpdo驱动
    # 安装 opcache 编译缓存
    # 安装 mysql驱动
    # -j$(nproc) -j nproc获取内核数
    # gd库
    # zip解压
    # mcrypt加密解密
    # sockets 通信协议
    # sysvsem  提供了一个内存共享方案
    # xmlrpc xml 协议
    # soap 扩展可以用来提供和使用 Web Services
    && pecl install redis-5.1.1 \
    # pecl PHP 扩展库仓库   安装redis扩展
    && cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
    # 拷贝时间
    && echo "${TIMEZONE}" > /etc/timezone \
    # 拷贝时区
    && mkdir /run/nginx \
    # 建立 /run/nginx
    && rm -rf /rm -rf /tmp/pear \
    # 删除tmp/pear 文件
    && apk del .build-deps  freetype-dev libpng-dev libjpeg-turbo-dev tzdata \
    # 删除安装过的文件
    &&  cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini \
    # 拷贝php.ini
    && mkdir /usr/local/src
    
COPY code2  /var/www/html
# 拷贝本地文件(源码)到  /var/www/html
COPY php/etc1/php.ini /usr/local/etc/php
# 拷贝本地文件(php配置文件)到 /usr/local/etc/php
COPY nginx/etc1/nginx.conf /etc/nginx
# 拷贝本地文件(nginx配置文件)到 /etc/nginx
COPY nginx/etc1/conf.d /etc/nginx/conf.d
# 拷贝本地文件(nginx配置文件)到 /etc/nginx/conf.d
COPY redis/redis.ini /usr/local/etc/php/conf.d/redis.ini
# 拷贝本地文件(redis配置文件)到 /usr/local/etc/php/conf.d/redis.ini
COPY ioncube_loader_lin_7.1.so /usr/local/src
# 拷贝本地文件(ioncube_loader_lin_7.1)到 /usr/local/src
EXPOSE 80
EXPOSE 9000
EXPOSE 443
CMD  /usr/sbin/nginx -g "daemon off;"

运行

 docker run -it -d --name shop_b2b2c_xdebug_v1 -p 80:80 -v /d/docker/dockerfile/code:/var/www/html  -v /d/docker/dockerfile/nginx/etc1/nginx.conf:/etc/nginx/nginx.conf  -v /d/docker/dockerfile/nginx/etc1/conf.d:/etc/nginx/conf.d   -v /d/docker/dockerfile/php/etc1/php.ini:/usr/local/etc/php/php.ini  shop-b2b2c-alpine
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值