Docker compose.yml.md

version: '3.5'

services:

  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    ports:
      - "3308:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: nacos_config
      MYSQL_USER: nacos_user
      MYSQL_PASSWORD: nacos_password
    volumes:
      - mysql_data:/var/lib/mysql                                             # 持久化存储数据
      - /vagrant/mysql/redmine/init.sql:/docker-entrypoint-initdb.d/init.sql  # 挂载初始化脚本
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci  # 设置字符集和排序规 则
    networks:
      - nacos_net
      - redmine_net


  redmine:
    image: redmine:5.0.5
    container_name: redmine
    restart: always
    ports:
      - "3000:3000"
    environment:
      REDMINE_DB_DATABASE: redmine_db      # 指定要连接的数据库名称
      REDMINE_DB_MYSQL: mysql              # 指定数据库名称
      REDMINE_DB_USERNAME: redmine_user      # 指定数据库用户
      REDMINE_DB_PASSWORD: redmine_password  # 指定数据库用户密码
      REDMINE_DB_ENCODING: utf8mb4
      REDMINE_DB_PORT: 3306
      TZ: Asia/Taipei
    volumes:
      - ./redmine/files:/usr/src/redmine/files  # 持久化文件存储
      - ./redmine/plugins:/usr/src/redmine/plugins  # 持久化插件存储
      - ./redmine/themes:/usr/src/redmine/public/themes  # 持久化主题存储
      - ./redmine/config/configuration.yml:/usr/src/redmine/config/configuration.yml  # 持久化配置文件
    networks:
      - redmine_net
    depends_on:
      - mysql

networks:
  nacos_net:
    name: nacos_net # 自定义网络名称
    driver: bridge # 使用桥接驱动
  redmine_net:
    name: redmine_net
    driver: bridge
volumes:
  mysql_data:

docker-compose.yml:

    mysql:
      volumes:
        - /vagrant/mysql/redmine/init.sql:/docker-entrypoint-initdb.d/init.sql 
  1. Docker 中使用 MySQL 容器时,初始化数据库和用户的过程通常依赖于放置在 /docker-entrypoint-initdb.d/ 目录下的 SQL 脚本。 这些脚本会在容器首次启动时自动执行。 容器中有初始化脚本但数据库和用户未生成
sudo docker exec -it mysql /bin/bash
bash-4.2# cat /docker-entrypoint-initdb.d/init.sql
  1. 无法创建新专案

  2. 無法載入預設組態: Mysql2::Error: Incorrect string value: '\xE7\xAE\xA1\xE7\x90\x86...' for column 'name' at row 1 無法載入預設組態: Mysql2::Error: Incorrect string value: '\xE4\xBD\x8E' for column 'name' at row 1