在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
什么是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版本。并经过运维的审核。 工具用的好,下班回家早。祝好!!!
|
2022-08-15
2022-08-17
2022-11-06
2022-08-17
2022-07-18
请发表评论