Dockerfile 搭建 php7.2+nginx+redis镜像 v20201224

本文介绍了如何通过Dockerfile搭建包含php7.2、nginx和redis的镜像,包括镜像优化、解决yum源问题、容器启动配置、代码部署等步骤。提供了Dockerfile、nginx配置、启动脚本及相关shell脚本,方便直接使用。
摘要由CSDN通过智能技术生成

docker确实好用,通过使用中的摸索,优化了一下使用步骤:

特别说明:

1.容器的构建、启动、进入、打包成文件,都可以通过shell脚本操作,不用每次键入完整的docker指令;

2.支持将容器打包成tar格式的镜像文件,省去Dockerfile的编译时间;

3.dockerfile已做容器层压缩,进而缩小镜像的体积;

4.run.sh中的脚本,最后一个必须是阻塞的,如果都是nohup ... &,会导致容器启动为以“0”的状态码退出,无法成功启动;

5.由于Dockerfile中的centos镜像永远是最新的,可能导致php的epel-release yum源无法正常使用;如果遇到这种情况,把安装完nginx之后的脚本都去除,只生成一个有nginx的镜像,然后进入nginx测试php的yum源,哪个yum源能用,再更新到Dockerfile中

6.容器成功启动后,需要进入容器,通过git将项目代码拉取到"/usr/share/nginx/php"目录,然后根据域名和端口号配置"/etc/nginx/nginx.conf"文件,然后执行“/usr/sbin/nginx -s reload”,让配置生效;

7.这些脚本,只用于搭建环境,代码部署,也可直接进入容器内进行代码管理操作。

8.更新了“Dockerfile”,支持PHP项目代码部署,将PHP代码复制到容器中“ /usr/share/nginx/php”目录下

9.用“nginx.conf”替换“default.conf”,修复容器运行后跳转50x.html页面;修复后,将默认执行“ /usr/share/nginx/php”目录下“index.php”文件;

10. docker run 命令中增加“--restart=always”,实现docker服务重启时,自动启动容器;

11. php 安装命令增加“--skip-broken”,解决包版冲突。

#----------------华丽分割线----------------

各脚本内容如下,正常情况,COPY走应该能直接用:

### 以下内容保存到文件“Dockerfile”

#version 20201118_1620
#just for building "nginx+php7.2.24+redis5.0.3+git" environment, not include project code

FROM centos
MAINTAINER mail:805888106@qq.com
USER root

#add set nginx repo url
ADD nginx.repo /etc/yum.repos.d

RUN yum -y install nginx

#prepare to install php
RUN mkdir -p /run/php-fpm && yum -y remove epel-release && rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm && rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm && echo "error..." > /usr/share/nginx/html/index.html && rm -rf /var/cac

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值