< 返回新闻公共列表
【云原生】Dockerfile制作WordPress镜像,实现Compose + K8s编排部署(上)
发布时间:2023-06-30 18:01:18
关于作者
大家好,我是秋意零。
CSDN作者主页
博客主页
简介
普通本科生在读
在校期间参与众多计算机相关比赛,如: “省赛”、“国赛”,斩获多项奖项荣誉证书
各个平台,秋意临 账号创作者
云社区 创建者
点赞、收藏+关注下次不迷路!
欢迎加入云社区
前言
今天给各位带来一个出色网站、博客系统 WordPress,不过不使用 Docker Hub 提供的 WordPress Docker镜像,我们使用 Dockerfile 自己制作,实现 LNMP WordPress 运行环境,并将 WordPress 部署再其基础之上
为什么不使用 Docker Hub 提供的 WordPress 镜像部署呢?
环境准备
Linux 7.5
docker v23.0.1
docker compose v2.17.0
WordPress v6.2
注意:这里的环境是博主使用环境,不限于此
新手小白教程
Centos7.5安装教程
Docker安装教程
Docker-Compose安装教程
目录结构
[root@master01 ~]# tree docker docker ├── db.sh #数据库启动、配置脚本 ├── default.conf #nginx配置文件,配置支持 php ├── docker-compose.yaml # compose 文件 ├── Dockerfile-mariadb # maraidb dockerfile文件 ├── Dockerfile-service # nginx+php+wordpress dockerfile文件 ├── wordpress-6.2-zh_CN.zip # wordpress安装包 ├── wp-config.php # wordpress配置文件,这里主要配置数据库部分 └── yum.sh #yum源配置脚本 0 directories, 8 files
dockerfile制作镜像
yum 脚本
yum脚本是两个 dockerfile 文件公用的脚本,因为这里都是使用 yum 安装的服务
# 清除默认yum rm -rf /etc/yum.repos.d/* # 磊宇云 centos7 yum curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.leiyu.cn/repo/Centos-7.repo #nginx yum cat > /etc/yum.repos.d/nginx.repo << EOF [nginx] name=nginx baseurl=https://nginx.org/packages/centos/7/x86_64/ gpgcheck=0 enabled=1 EOF #mariadb yum cat > /etc/yum.repos.d/mariadb.repo <
db.sh << EOF #!/bin/bash mysql_install_db --user=root mysqld_safe --user=root & sleep 3 mysqladmin -u root password '000000' mysql -uroot -p000000 -e "create database wordpress;" mysql -uroot -p000000 -e "grant all on wordpress.* to root@localhost identified by '000000';" mysql -uroot -p000000 -e "grant all on wordpress.* to root@'%' identified by '000000';" EOF
Dockerfile-mariadb
cat > Dockerfile-mariadb << EOF FROM centos:centos7.9.2009 MAINTAINER qyl COPY yum.sh /opt/ COPY db.sh /opt RUN sh /opt/yum.sh && yum clean all RUN yum install -y mariadb-server RUN sh /opt/db.sh EXPOSE 3306 CMD ["mysqld_safe","--user=root"] EOF
构建镜像
docker build -t wp-mariadb:v1 -f Dockerfile-mariadb .
Dockerfile-service 镜像
yum.sh、default.conf 、wp-config.php 是 Dockerfile-service 构建镜像时所需要的文件
default.conf
这是配置 nginx 能代理 php 网页的配置
cat > default.conf << EOF server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.php index.html index.htm; #修改部分 } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { root /usr/share/nginx/html; #修改部分 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #修改部分 include fastcgi_params; } } EOF
wp-config.php
在安装 wordpress 时 wordpress 配置文件无法自动写入时,使用这种方式手动写入(主要配置数据库部分)
注意:数据库部分的配置
cat > wp-config.php << EOF
/template/Home/leiyu/PC/Static