Yêu cầu: đã cài docker và cơ sở dữ liệu mariadb

 

  • Tạo thư mục có cấu trúc:

 

redmine/

 

├─ docker-compose.yml

 

├─ .env

 

└─ data/    # volumes lưu files/ attachments

 

#Tạo chuỗi REDMINE_SECRET_KEY_BASE

 

[root@redmine ~]# openssl rand -hex 64

#Tạo và thêm nội dung dưới vào file .env

[root@redmine ~]# nano .env

 

######################################

REDMINE_PORT=3000

 

REDMINE_SECRET_KEY_BASE=thay bằng chuỗi in ra ở câu lệnh trước

 

# ====== Remote MariaDB ======

 

DB_HOST=10.128.59.200

 

DB_PORT=3306

 

DB_NAME=redmine

 

DB_USER=redmine

 

DB_PASSWORD=StrongP@ssw0rd!

######################################

 

  • Tạo file docker-compose.yml

 ######################################

version: "3.9"

 

services:

 

  redmine:

 

    image: redmine:6

 

    container_name: redmine6

 

    restart: unless-stopped

 

    ports:

 

      - "${REDMINE_PORT}:3000"

 

    environment:

 

      # Kết nối DB từ xa (MariaDB external)

 

      REDMINE_DB_MYSQL: "${DB_HOST}"

 

      REDMINE_DB_PORT: "${DB_PORT}"

 

      REDMINE_DB_DATABASE: "${DB_NAME}"

 

      REDMINE_DB_USERNAME: "${DB_USER}"

 

      REDMINE_DB_PASSWORD: "${DB_PASSWORD}"

 

      # Khuyến nghị set secret key để session/CSRF an toàn

 

      REDMINE_SECRET_KEY_BASE: "${REDMINE_SECRET_KEY_BASE}"

 

      # Tuỳ chọn locale/email (bật khi cần)

 

      # REDMINE_LANG: "vi"

 

      # REDMINE_EMAIL: "redmine@example.com"

 

      # REDMINE_SMTP_ENABLED: "true"

 

      # REDMINE_SMTP_METHOD: "smtp"

 

      # REDMINE_SMTP_DOMAIN: "example.com"

 

      # REDMINE_SMTP_SERVER: "smtp.example.com"

 

      # REDMINE_SMTP_PORT: 587

 

      # REDMINE_SMTP_USER: "smtp_user"

 

      # REDMINE_SMTP_PASSWORD: "smtp_pass"

 

      # REDMINE_SMTP_STARTTLS: "true"

 

    volumes:

 

      # Lưu files, themes, plugins, logs (nằm ngoài container)

 

      - ./data/files:/usr/src/redmine/files

 

      - ./data/plugins:/usr/src/redmine/plugins

 

      - ./data/themes:/usr/src/redmine/public/themes

 

      - ./data/log:/usr/src/redmine/log

 

    # Nếu DB trên mạng on-prem khác subnet, đảm bảo route/firewall cho phép

 

    networks:

 

      - redmine_net

 

    # Healthcheck cơ bản: kiểm tra cổng Puma/WEBrick

 

    healthcheck:

 

      test: ["CMD", "bash", "-c", "exec 3<>/dev/tcp/127.0.0.1/3000 && echo -e 'GET / HTTP/1.1\r\nHost: localhost\r\n\r\n' >&3 && grep -q '200 OK' <&3"]

 

      interval: 30s

 

      timeout: 5s

 

      retries: 5

 

networks:

 

  redmine_net:

 

  driver: bridge

###############################################

 

 

  • Tạo Database & User trên MariaDB (remote 10.128.59.200)

 

#Tạo database dùng utf8mb4 để hỗ trợ đầy đủ emoji/ký tự đa ngôn ngữ

 

CREATE DATABASE redmine CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

 

#Tạo user (giới hạn chỉ từ IP của host chạy Redmine nếu muốn)

 

CREATE USER 'redmine'@'%' IDENTIFIED BY 'StrongP@ssw0rd!';

 

#Cấp quyền đầy đủ cho Redmine

 

GRANT ALL PRIVILEGES ON redmine_prod.* TO 'redmine'@'%';

 

FLUSH PRIVILEGES;

 

  • Khởi chạy

[root@redmine ~]docker compose up -d

 

#xem log

[root@redmine ~]docker compose logs -f redmine

  • Mở port firewall

#Truy cập:

http://<IP_máy_chạy_Redmine>:3000

  •  Kết hợp với AD: xem video

######################################