DockerFile 部署 wordpress 实践
部署 wordpress
[root@docker02 ~]
[root@docker02 ~]
[root@docker02 Dockerfile]
FROM centos:7
RUN yum -y update && \
yum -y install epel-release && \
yum -y install wget && \
yum -y install tar && \
yum -y install openssl && \
yum -y install numactl-libs && \
yum -y install libaio && \
yum -y install perl && \
yum clean all
WORKDIR /app
COPY mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz /app/mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
RUN tar xf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz && \
useradd mysql -s /sbin/nologin -M && \
mv mysql-5.7.42-linux-glibc2.12-x86_64 /app/mysql-5.7.42 && \
rm -f mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz && \
ln -s /app/mysql-5.7.42 /app/mysql && \
chown mysql.mysql -R /app/mysql* && \
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld && \
cd /app/mysql/bin/ && \
./mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data
RUN mkdir /code && \
yum install -y nginx php-fpm php php-mysql && \
groupadd www -g 666 && \
useradd www -u 666 -g 666 -s /sbin/nologin/ -M && \
sed -i 's#user nginx#user www#' /etc/nginx/nginx.conf && \
sed -i 's#user = apache#user = www#' /etc/php-fpm.d/www.conf && \
sed -i 's#group = apache#group = www#' /etc/php-fpm.d/www.conf && \
cd /code && \
wget https://cn.wordpress.org/wordpress-5.0.3-zh_CN.tar.gz && \
tar xf wordpress-5.0.3-zh_CN.tar.gz && \
chown -R www.www /code/*
COPY wp.conf /etc/nginx/conf.d/
ENV PATH=/app/mysql/bin:$PATH
ENV PHP_FPM_CONF_FILE=/etc/php-fpm.conf
ENV NGINX_CONF_FILE=/etc/nginx/nginx.conf
COPY my.cnf /etc/my.cnf
RUN /etc/init.d/mysqld start && \
/app/mysql/bin/mysql -e "create database wp charset utf8;" && \
/app/mysql/bin/mysql -e "grant all on wp.* to wp_user@'%' identified by '123';"
VOLUME /app/mysql/data
EXPOSE 3306 80
CMD service mysqld start && nginx -c $NGINX_CONF_FILE && php-fpm -c $PHP_FPM_CONF_FILE
准备 Dockerfile 所需文件
[root@docker02 Dockerfile]
[mysqld]
basedir=/app/mysql
datadir=/app/mysql/data
[root@docker02 Dockerfile]
-- MySQL dump 10.13 Distrib 5.7.42, for linux-glibc2.12 (x86_64)
--
-- Host: localhost Database: wp
-- ------------------------------------------------------
-- Server version 5.7.42
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2023-09-10 9:20:32
[root@docker02 Dockerfile]
server{
listen 80;
server_name _;
root /code/wordpress;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
开始制作成镜像
[root@docker02 Dockerfile]
[root@docker02 Dockerfile]
[root@d1fd726876f9 app]
[root@d1fd726876f9 app]
[root@d1fd726876f9 app]
访问网页




将 wordpress 打包成镜像
[root@docker02 ~]
[root@docker02 ~]
[root@docker02 ~]
[root@docker01 ~]
[root@docker01 ~]
[root@0e5546c39cb7 app]
[root@0e5546c39cb7 app]
[root@0e5546c39cb7 app]



【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY