Redmine docker-compose 配置与 Traefik 和 Let's Encrypt

此配置基于我们之前的文章如何使用 Docker 镜像轻松安装 Redmine和我们的 Traefik 配置与 Cloudflare 通配符证书(参见简单 Traefik docker-compose 设置与 Lets Encrypt Cloudflare DNS-01 和 TLS-ALPN-01 和 HTTP-01 挑战

REDMINE_PASSWORD 替换为随机密码,并在你访问 Web UI 后更改该密码。

redmine_compose_traefik.yml
services:
  mariadb:
    image: 'mariadb:latest'
    environment:
      - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
      - MYSQL_DATABASE=redmine
    volumes:
      - './mariadb_data:/var/lib/mysql'
    command: --default-storage-engine innodb
    restart: unless-stopped
    healthcheck:
      test: [ "CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized" ]
      start_period: 1m
      interval: 1m
      timeout: 5s
      retries: 3
  redmine:
    image: 'redmine:latest'
    environment:
      - REDMINE_USERNAME=admin
      - REDMINE_PASSWORD=redmineadmin
      - [email protected]
      - REDMINE_DB_MYSQL=mariadb
      - REDMINE_DB_USERNAME=root
      - REDMINE_DB_PASSWORD=${MARIADB_ROOT_PASSWORD}
    volumes:
      - './redmine_data/config/configuration.yml:/usr/src/redmine/config/configuration.yml'
      - './redmine_data/config/database.yml:/usr/src/redmine/config/database.yml'
      - './redmine_data/files:/usr/src/redmine/files'
      - './redmine_themes:/usr/src/redmine/themes'
      - './redmine_git:/git'
    depends_on:
      mariadb:
        condition: service_healthy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.redmine-mydomain.rule=Host(`redmine.mydomain.com`)"
      - "traefik.http.routers.redmine-mydomain.entrypoints=websecure"
      - "traefik.http.routers.redmine-mydomain.tls.certResolver=cloudflare-ec384"
      - "traefik.http.services.redmine-mydomain.loadbalancer.server.port=3000"

Check out similar posts by category: Redmine, Docker