• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

基于Alpine构建php7+nginx

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

什么是Alpine?

  Alpine 是一个基于musl libc和busybox的面向安全性的轻量级Linux发行版。简单来说就是一个精简的linux系统。最新的3.11.6标准版本安装包只有120M左右。

为什么基于Alpine构建我们的docker环境呢?

  基于docker的部署方式给运维工作带来了极大的便利,但是镜像的大小有时候影响了部署的速度。基于apline构建的镜像可以明显减小镜像的存储占用。方便拷贝和下载。

 如何快速构建镜像:

  一般的web项目都是lnmp方式部署。但是考虑到数据独立存储。我在镜像中只集成了php73 和 nginx.

 

先写个启动脚本 run.sh,内容如下:

#!/bin/sh
mkdir -p /run/nginx
/usr/sbin/nginx
/usr/sbin/php-fpm7
tail -f /etc/hosts

 

再将如下内容复制到Dockerfile中,跟run.sh 放在一起。

 

FROM alpine:3.11
COPY run.sh /

RUN cd / && \
    sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
    apk update  && \
    apk add build-base curl shadow openssh bash libxml2-dev openssl-dev libjpeg-turbo-dev libpng-dev libxpm-dev freetype-dev gd-dev gettext-dev libmcrypt-dev binutils && \
    addgroup www  && \
    adduser -G www -D -s /sbin/nologin www  && \
    apk add nginx && \
    apk add php7 php7-fpm php7-opcache php7-curl php7-gd php7-mbstring php7-mysqli php7-json php7-mcrypt php7-redis php7-pdo  redis  && \
    apk del build-base shadow binutils && \
    #rm -rf  /var/cache/apk/* && \
    chmod +x /run.sh
EXPOSE  80
ENTRYPOINT ["/run.sh"]

 

然后执行命令

docker build -t alpine-php7.3.17-nginx:1.2 .

 

成功则显示如下,我也是尝试了几次成功的,可能跟网速有关。下面显示用了cache。

 

接下来 我们尝试启动一个名为 afei 的容器

docker run   --name afei  -d  alpine-php7.3.17-nginx:1.2 .

 查看启动情况

 

进入容器查看进程。

 

 

 

 至此,php-fpm和nginx都已启动。

可以将自己php和nginx的配置文件映射至容器的如下两个目录

/etc/php7/php.ini

/etc/nginx/conf.d/default.conf

如果线上使用,最好在Dockerfile中指定安装的php和nginx版本。并经过运维的审核。

工具用的好,下班回家早。祝好!!!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Calltoundefinedfunctioncurl_init()解决方案-PHP发布时间:2022-07-10
下一篇:
PHP插件技术-插件钩子(hooks)分析发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap