我想在内网保留我之前的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
 
   |