Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用 Dockerfile 构建 php7.4 centos 容器

使用 Dockerfile 构建 php7.4 centos 容器

作者头像
lukachen
发布于 2023-10-22 07:57:36
发布于 2023-10-22 07:57:36
1.1K00
代码可运行
举报
文章被收录于专栏:LukaChen BlogLukaChen Blog
运行总次数:0
代码可运行

一、序

dockerhub 官网提供了 php7.4 fpm 官方镜像(参见 https://hub.docker.com/_/php/tags?page=1&name=7.4-fpm-alpine),其中有 alpine 版本只要几十兆,但这样的镜像基础工具很少,项目内需安装一些额外扩展还是很费劲,本着简单实用原则,自己编写了下述 Dockerfile 便于快速创建出基于 centos 系统的 php docker 环境并支持 ssh 登录

二、start.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

# 启动 php-fpm
php-fpm

# 启动SSH服务
/usr/sbin/sshd -D

三、Dockerfile

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用 CentOS 7 作为基础镜像
FROM centos:7

# 复制文件进容器
COPY start.sh /start.sh

# 更换 CentOS 镜像源为腾讯云,清理缓存并重建,加快后续 yum 命令
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup && \
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.cloud.tencent.com/repo/centos7_base.repo && \
    yum clean all && \
    yum makecache fast

# 安装 EPEL 源,导入 remi 源 GPG key 用于 yum 安装 remi-php74
RUN yum install -y https://mirrors.cloud.tencent.com/epel/epel-release-latest-7.noarch.rpm && \
    rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi && \
    yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm && \
    # 安装 工具
    yum install -y wget yum-utils net-tools vim openssh-server passwd && \
    # 启用 remi-php74 源
    yum-config-manager --enable remi-php74 && \
    # 安装 PHP74 及相关扩展
    yum install -y php php-fpm php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-redis php-opcache && \
    # 系统时区设置
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    # 设置 root ssh 登录,安装 net-tools 和 vim
    ssh-keygen -A && \
    sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config && \
    echo "root:root" | chpasswd && \
    # 创建 php-fpm pid 文件目录,调整 php-fpm 来源客户端限制
    mkdir /run/php-fpm && \
    sed -i 's/^listen.allowed_clients/;listen.allowed_clients/g' /etc/php-fpm.d/www.conf && \
    sed -i 's/^listen = 127.0.0.1:9000/listen = 0.0.0.0:9000/g' /etc/php-fpm.d/www.conf && \
    # vi 中文乱码
    echo "alias vi='vim'" >>/root/.bashrc && \
    echo "set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1" >>/root/.vimrc && \
    echo "set enc=utf8" >>/root/.vimrc && \
    echo "set fencs=utf8,gbk,gb2312,gb18030" >>/root/.vimrc && \
    # 启动脚本权限调整
    chmod 755 /start.sh
        
EXPOSE 9000 22

# 启动
CMD ["/start.sh"]

# 手动打镜像
# docker build -t centos_php74:test1 Dockerfile .

# 手动启动挂到后台
# docker run -d -p 2222:22 xxx

# 手动启动一次性容器进行测试
# docker run --rm -p 2222:22 -it xxx /bin/bash

# 服务端容器重建的后,会导致客户端 ssh 登录失败,可在客户端使用下述清除本地 known_hosts
# ssh-keygen -R CONTAINER_IP

以上,若有疑问可邮件沟通~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Web服务器-一代经典LNMP
作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
运维小路
2025/04/22
980
Web服务器-一代经典LNMP
CentOS7下部署开源网络监控系统LibreNMS
LibreNMS是一款开源的,功能强大且功能丰富的自动发现的网络监控系统,基于PHP,使用SNMP协议。它支持广泛的操作系统,包括Linux,FreeBSD以及思科,Juniper,Brocade,Foundry,HP等网络设备。
yuanfan2012
2021/01/14
4.3K1
CentOS7下部署开源网络监控系统LibreNMS
不逊色Zabbix的开源监控LibreNMS:全功能网络监控
LibreNMS是一个功能齐全的开源网络监控系统,它使用SNMP来获取来自不同设备的数据,LibreNMS支持各种设备如Cisco Linux FreeBSD Juniper Brocade Foundry HP等,它支持多种身份验证机制,并支持双因素身份验证。它有一个可定制的警报系统,可以通过电子邮件,IRC或slack通知网络管理员。
释然IT杂谈
2022/10/27
4.5K0
不逊色Zabbix的开源监控LibreNMS:全功能网络监控
PHP进阶-CentOS7部署LNMP项目
在开发和部署Web应用时,LNMP(Linux、nginx、MySQL、PHP)的组合是非常常见的。这篇博客将介绍如何通过一个简单的脚本,在CentOS 7上部署LNMP,并将PHP项目自动部署到服务器上。这不仅可以节省大量的时间,还能确保环境配置的一致性。这个一键部署的脚本不仅简化了部署过程,还能确保配置的正确性和一致性。使用这样的部署方法,可以极大地节省时间和精力,特别是对于频繁需要部署新环境的开发团队而言,效率提升显著。
Damon小智
2024/07/29
1132
PHP进阶-CentOS7部署LNMP项目
CentOS7快速安装搭建LNMP环境
源码编译安装 LNMP 环境虽然便于自定义,但是对于小型服务器来说,漫长的编译时间让人无法等待。如果能在 10 分钟内搞定环境安装,那就很好了。
会长君
2023/04/26
1.1K0
CentOS7快速安装搭建LNMP环境
源码编译安装 LNMP 环境虽然便于自定义,但是对于小型服务器来说,漫长的编译时间让人无法等待。如果能在 10 分钟内搞定环境安装,那就很好了。
星哥玩云
2022/07/24
1.5K0
Linux系统之部署lylme_spage个人导航页
江湖有缘
2023/12/15
8950
Linux系统之部署lylme_spage个人导航页
CentOS 7配置LNMP开发环境及配置文件管理详解
本篇文章主要介绍了CentOS 7配置LNMP开发环境及配置文件管理,详细的介绍了MySQL 5.6,PHP 5.6,Nginx的安装与配置,有兴趣的可以了解一下。
习惯说一说
2019/07/08
5380
02.docker镜像制作
基于centos7制作docker镜像 docker镜像是企业非常常用的一种应用打包,应用交付的方式. docker天生优势,一处构建处处运行,在任何机器构建的服务均可以在任意一台安装有docker的主机上运行 1. docker构建nginx镜像 1. 首先安装centos7平台环境 docker run -itd --name centos7 cenots:7 docker run -it --name centos7 centos:7 2. 进入cenots7 docker exec -it cen
陈雷雷
2020/03/18
1.4K0
02.docker镜像制作
Centos7 安装最新版 NGINX,PHP,Mysql,Mariadb
自己下载源代码编译很麻烦有没有?注意系统是Centos7! NGINX rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install -y nginx systemctl start nginx systemctl status nginx systemctl enable nginx PHP yum install -y yum-utils
老高的技术博客
2022/12/28
6210
zabbix yum源安装笔记
按下列步骤安装企业yum源,再修改yum源配置文件:/etc/yum.repos.d/remi.repo,开启源remi-php56
拓荒者
2019/08/30
1.9K0
CentOS7下部署开源IT资产管理软件GLPI+FusionInventory
GLPI是法语Gestionnaire libre de parc informatique的缩写,是一款历史悠久的IT资产管理软件
yuanfan2012
2022/12/06
4.7K0
CentOS7下部署开源IT资产管理软件GLPI+FusionInventory
Dockerfile
Docker镜像可以通过Docker hub仓库中获取,这些镜像是由官方或者社区人员提供的,对于Docker用户来说并不能满足我们的需求,但是从无开始构建镜像成本大。常用的数据库、中间件、应用软件等都有现成的Docker官方镜像或社区创建的镜像,我们只需要稍作配置就可以直接使用。
Alone-林
2023/03/17
9451
Dockerfile
将你的PHP程序升级到PHP7.0
nginx如果需要某些高级特性,比如lua支持等,可以自己下载源码编译,这里老高图快,直接用官方源yum安装了
老高的技术博客
2022/12/28
6830
将你的PHP程序升级到PHP7.0
centos7初始化及安全问题
防火墙 将firewalld修改为iptables systemctl stop firewalld systemctl disable firewalld yum -y install iptables-services systemctl enable iptables systemctl start iptables vim /etc/sysconfig/iptables service iptables restart centos7以下为 chkconfig iptables off 管理 SEL
一朵灼灼华
2022/08/05
5500
centos7初始化及安全问题
添加yum资源 epel 和 remi
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
拓荒者
2019/08/19
1.6K0
CentOS上安装 Apache、MySQL8 或MariaDB10和 PHP7
PHP是世界上最好的语言,你可以反驳,但是我不接受。 本文介绍了如何安装最新版本的 Apache, MySQL 8 或者 MariaDB 10 和 PHP 7 以及所需的 PHP 模块 RHEL / CentOS 7/6 和 Fedora 24-29. 我们将用 EPEL 和 Remi存储库并使用yum和dnf(Fedora 中可用的新包管理工具)。 第 1 步:安装 EPEL 和 Remi 存储库 EPEL (Extra Packages for Enterprise Linux) 是一个基于社区的存储库
入门笔记
2022/06/02
1.1K0
CentOS上安装 Apache、MySQL8 或MariaDB10和 PHP7
docker build centos8系统php8.1+swoole等各种扩展镜像dockerfile
目前这个build的dockerfile只用在测试开发环境哈,需要优化opcache啥的自己开启一下哈 FROM centos:8 MAINTAINER zhaohao731869706@163.com ENV PHP_VERSION=8.1 ENV LANG=C.UTF-8 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN rm /etc/yum.repos.d/*.repo && curl https://m
美团骑手
2023/03/23
8290
基于Dockerfile构建LNMP环境(PHP7+MySQL+Nginx)
经几个星期反复测试总结出了整个lnmp环境的Dockerfile文件,并已经适用于公司开发环境中。
星哥玩云
2022/07/19
9040
CentOS7 yum安装LNMP
安装 Nginx yum install nginx 安装 PHP # 启用 remi 源 yum install epel-release yum-utils -y yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm # 安装 php yum-config-manager --enable remi-php72 # 安装 php7.2 yum-config-manager --enable remi-php73 # 安装
陳斯托洛夫斯記
2022/10/27
4450
CentOS7 yum安装LNMP
相关推荐
Web服务器-一代经典LNMP
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验