我想在内网保留我之前的wordpress文章所以就起了个服务,记录一下方便查询。
初始化脚本
创建初始化脚本并运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| #!/bin/bash
# 定义可修改的变量 #数据库root密码 MYSQL_ROOT_PASSWORD="123456" # wordpress数据库账户 WORDPRESS_DB_USER="wordpress_user" # wordpress数据库密码 WORDPRESS_DB_PASSWORD="wordpress_password"
# 定义要创建的目录列表 directories=( "mysql/data" "mysql/conf" "mysql/logs" "wordpress" )
# 创建目录 for dir in "${directories[@]}" do mkdir -p "$dir" echo "Created directory: $dir" done
# 生成 init.sql 文件内容 init_sql_content=$(cat <<EOF -- 创建名为 $WORDPRESS_DB_USER 的用户,密码为 $WORDPRESS_DB_PASSWORD CREATE USER '$WORDPRESS_DB_USER'@'%' IDENTIFIED BY '$WORDPRESS_DB_PASSWORD'; -- 授予 $WORDPRESS_DB_USER 用户对 wordpress 数据库的所有权限 GRANT ALL PRIVILEGES ON wordpress.* TO '$WORDPRESS_DB_USER'@'%'; -- 刷新权限使更改生效 FLUSH PRIVILEGES; -- 创建一个名为 wordpress 的数据库 CREATE DATABASE wordpress; EOF )
# 写入 init.sql 文件 echo "$init_sql_content" > init.sql echo "Created file: init.sql"
# 生成 .env 文件内容 env_content=$(cat <<EOF MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD WORDPRESS_DB_USER=$WORDPRESS_DB_USER WORDPRESS_DB_PASSWORD=$WORDPRESS_DB_PASSWORD EOF )
# 写入 .env 文件 echo "$env_content" > .env echo "Created file: .env"
# 生成 uploads.ini 文件内容 uploads_ini_content=$(cat <<EOF memory_limit = 64M upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 EOF )
# 写入 uploads.ini 文件 echo "$uploads_ini_content" > ./wordpress/uploads.ini echo "Created file: uploads.ini"
# 输出提示信息 echo "All directories and files have been created successfully."
|
赋予运行权限并运行
Docker-compose
与初始化脚本放在同一个文件夹内运行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| version: '3.8'
services: mysql: image: mysql:8 container_name: mysql volumes: - ./mysql/data:/var/lib/mysql - ./mysql/conf:/etc/mysql/conf.d - ./mysql/logs:/var/log/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} restart: always
wordpress: image: wordpress container_name: wordpress depends_on: - mysql volumes: - ./wordpress:/var/www/html - ./wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini ports: - "80:80" environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: ${WORDPRESS_DB_USER} WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD} WORDPRESS_DB_NAME: wordpress restart: always
|