如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像用于构建Redmine容器化部署环境,Redmine是一款开源的项目管理和缺陷跟踪工具,支持多项目管理、问题跟踪、文档管理、版本控制集成等功能。
当前版本:sameersbn/redmine:4.0.4
注意:如果您的安装依赖于各种第三方插件,请坚持使用2.6.xx系列以避免兼容性问题。
推荐通过Docker Hub的自动构建获取镜像:
bashdocker pull sameersbn/redmine:latest
自2.4.2版本起,镜像开始使用版本标签,您可以指定特定版本拉取:
bashdocker pull sameersbn/redmine:4.0.4
也可手动构建镜像:
bashdocker build -t sameersbn/redmine github.com/sameersbn/docker-redmine
最快的启动方式是使用docker-compose:
bashwget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/docker-compose.yml docker-compose up
或者手动启动Redmine和PostgreSQL容器:
bashdocker run --name=postgresql-redmine -d \ --env='DB_NAME=redmine_production' \ --env='DB_USER=redmine' --env='DB_PASS=password' \ --volume=/srv/docker/redmine/postgresql:/var/lib/postgresql \ sameersbn/postgresql:9.6-4
bashdocker run --name=redmine -d \ --link=postgresql-redmine:postgresql --publish=10083:80 \ --env='REDMINE_PORT=10083' \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
注意:Redmine应用启动需要1-2分钟时间。
访问http://localhost:10083,使用默认账号登录:
建议登录后访问"管理"链接并"加载默认配置",然后再创建项目。
Redmine需要挂载卷以持久化存储文件,挂载路径为:
/home/redmine/dataSELinux用户配置
SELinux用户需要修改挂载点的安全上下文:
bashmkdir -p /srv/docker/redmine/redmine sudo chcon -Rt svirt_sandbox_file_t /srv/docker/redmine/redmine
挂载卷示例
bashdocker run --name=redmine -it --rm \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
Redmine支持MySQL和PostgreSQL数据库后端。
MySQL
内部MySQL服务器
镜像已移除内部MySQL服务器,请使用链接的MySQL容器或外部MySQL服务器。
如果之前使用内部MySQL服务器,可按以下步骤迁移到链接的MySQL容器:
bash# 启动MySQL容器(假设数据存储在/srv/docker/redmine/mysql) docker run --name=mysql-redmine -d \ --volume=/srv/docker/redmine/mysql:/var/lib/mysql \ sameersbn/mysql:5.7.22-1
然后登录MySQL容器创建用户,再链接到Redmine容器。
外部MySQL服务器
首先在外部MySQL服务器创建数据库和用户:
sqlmysql -uroot -p CREATE USER 'redmine'@'%.%.%.%' IDENTIFIED BY 'password'; CREATE DATABASE IF NOT EXISTS `redmine_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `redmine_production`.* TO 'redmine'@'%.%.%.%';
启动Redmine容器连接外部MySQL:
bashdocker run --name=redmine -it --rm \ --env='DB_ADAPTER=mysql2' \ --env='DB_HOST=192.168.1.100' --env='DB_NAME=redmine_production' \ --env='DB_USER=redmine' --env='DB_PASS=password' \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
链接MySQL容器
使用https://github.com/sameersbn/docker-mysql%E9%95%9C%E5%83%8F%E5%90%AF%E5%8A%A8MySQL%E5%AE%B9%E5%99%A8%EF%BC%9A
bash# 拉取MySQL镜像 docker pull sameersbn/mysql:5.7.22-1 # 创建数据存储目录(SELinux用户需设置安全上下文) mkdir -p /srv/docker/redmine/mysql sudo chcon -Rt svirt_sandbox_file_t /srv/docker/redmine/mysql # 启动MySQL容器 docker run --name=mysql-redmine -d \ --env='DB_NAME=redmine_production' \ --env='DB_USER=redmine' --env='DB_PASS=password' \ --volume=/srv/docker/redmine/mysql:/var/lib/mysql \ sameersbn/mysql:5.7.22-1
链接MySQL容器启动Redmine:
bashdocker run --name=redmine -it --rm --link=mysql-redmine:mysql \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
支持的MySQL容器镜像:
PostgreSQL
外部PostgreSQL服务器
在外部PostgreSQL服务器创建数据库和用户:
sqlCREATE ROLE redmine with LOGIN CREATEDB PASSWORD 'password'; CREATE DATABASE redmine_production; GRANT ALL PRIVILEGES ON DATABASE redmine_production to redmine;
启动Redmine容器连接外部PostgreSQL:
bashdocker run --name=redmine -it --rm \ --env='DB_ADAPTER=postgresql' \ --env='DB_HOST=192.168.1.100' --env='DB_NAME=redmine_production' \ --env='DB_USER=redmine' --env='DB_PASS=password' \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
链接PostgreSQL容器
使用https://github.com/sameersbn/docker-postgresql%E9%95%9C%E5%83%8F%E5%90%AF%E5%8A%A8PostgreSQL%E5%AE%B9%E5%99%A8%EF%BC%9A
bash# 拉取PostgreSQL镜像 docker pull sameersbn/postgresql:9.6-4 # 创建数据存储目录(SELinux用户需设置安全上下文) mkdir -p /srv/docker/redmine/postgresql sudo chcon -Rt svirt_sandbox_file_t /srv/docker/redmine/postgresql # 启动PostgreSQL容器 docker run --name=postgresql-redmine -d \ --env='DB_NAME=redmine_production' \ --env='DB_USER=redmine' --env='DB_PASS=password' \ --volume=/srv/docker/redmine/postgresql:/var/lib/postgresql \ sameersbn/postgresql:9.6-4
链接PostgreSQL容器启动Redmine:
bashdocker run --name=redmine -it --rm --link=postgresql-redmine:postgresql \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
支持的PostgreSQL容器镜像:
可配置Memcached服务器加速Redmine,适用于用户量较大的场景。
外部Memcached服务器
通过环境变量MEMCACHE_HOST和MEMCACHE_PORT指定外部Memcached服务器:
bashdocker run --name=redmine -it --rm \ --env='MEMCACHE_HOST=192.168.1.100' --env='MEMCACHE_PORT=11211' \ sameersbn/redmine:4.0.4
链接Memcached容器
使用https://github.com/sameersbn/docker-memcached%E9%95%9C%E5%83%8F%E5%90%AF%E5%8A%A8Memcached%E5%AE%B9%E5%99%A8%EF%BC%9A
bashdocker run --name=memcached-redmine -d sameersbn/memcached:1.5.6
链接Memcached容器启动Redmine:
bashdocker run --name=redmine -it --rm --link=memcached-redmine:memcached \ sameersbn/redmine:4.0.4
通过环境变量配置邮件服务,默认使用Gmail发送邮件,需指定有效的用户名和密码。
Gmail配置示例
bashdocker run --name=redmine -it --rm \ --env='SMTP_USER=USER@gmail.com' --env='SMTP_PASS=PASSWORD' \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
非Gmail配置
使用其他SMTP服务器时,需配置SMTP_HOST和SMTP_PORT参数。使用自定义域名的Google Apps账户时,需设置SMTP_DOMAIN参数。
可通过IMAP_相关环境变量配置邮件接收功能(用户可通过回复邮件评论问题),该功能自版本2.6.6-2、3.0.4-2和3.1.0-2起可用。
可通过SSL加密访问Redmine,需要私钥(.key)和SSL证书(.crt)。
生成自签名证书
创建服务器私钥:
bashopenssl genrsa -out redmine.key 2048
创建证书签名请求(CSR):
bashopenssl req -new -key redmine.key -out redmine.csr
使用私钥和CSR签名证书:
bashopenssl x509 -req -days 365 -in redmine.csr -signkey redmine.key -out redmine.crt
增强服务器安全性
生成更强的DHE参数:
bashopenssl dhparam -out dhparam.pem 2048
安装SSL证书
默认证书路径为/home/redmine/data/certs,可通过SSL_KEY_PATH、SSL_CERTIFICATE_PATH和SSL_DHPARAM_PATH修改。将证书文件复制到数据存储目录:
bashmkdir -p /srv/docker/redmine/redmine/certs cp redmine.key /srv/docker/redmine/redmine/certs/ cp redmine.crt /srv/docker/redmine/redmine/certs/ cp dhparam.pem /srv/docker/redmine/redmine/certs/ chmod 400 /srv/docker/redmine/redmine/certs/redmine.key
启用HTTPS支持
设置REDMINE_HTTPS=true启用HTTPS:
bashdocker run --name=redmine -d \ --publish=10083:80 --publish 10445:443 \ --env='REDMINE_PORT=10445' --env='REDMINE_HTTPS=true' \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
配置HSTS
通过NGINX_HSTS_MAXAGE设置HSTS max-age值(默认31536000秒):
bashdocker run --name=redmine -d \ --env='REDMINE_HTTPS=true' \ --env='NGINX_HSTS_MAXAGE=2592000' --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
设置NGINX_HSTS_ENABLED=false完全禁用HSTS。
负载均衡器下的HTTPS配置
使用负载均衡器(如nginx/haproxy/hipache)时,SSL配置应在负载均衡器上完成,容器内无需安装SSL证书,但必须设置REDMINE_HTTPS=true:
bashdocker run --name=redmine -d --publish=10083:80 \ --env='REDMINE_HTTPS=true' \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
通过REDMINE_RELATIVE_URL_ROOT配置Redmine在子目录下运行,例如部署到/redmine:
bashdocker run --name=redmine -d --publish=10083:80 \ --env='REDMINE_RELATIVE_URL_ROOT=/redmine' \ --volume=/srv/docker/redmine/redmine:/home/redmine/data \ sameersbn/redmine:4.0.4
注意:
REDMINE_RELATIVE_URL_ROOT参数必须以斜杠开头。
将插件放置在数据存储目录的plugins子目录中:
bashmkdir -p /srv/docker/redmine/redmine/plugins git clone https://github.com/插件仓库.git /srv/docker/redmine/redmine/plugins/插件名称
重启Redmine容器使插件生效。
删除插件目录并重启容器:
bashrm -rf /srv/docker/redmine/redmine/plugins/插件名称 docker restart redmine
将主题放置在数据存储目录的themes子目录中:
bashmkdir -p /srv/docker/redmine/redmine/themes git clone https://github.com/主题仓库.git /srv/docker/redmine/redmine/themes/主题名称
重启Redmine容器,然后在Redmine管理界面选择主题。
删除主题目录并重启容器:
bashrm -rf /srv/docker/redmine/redmine/themes/主题名称 docker restart redmine
备份数据存储目录和数据库:
bash# 备份数据存储 tar -zcvf redmine_data_backup.tar.gz /srv/docker/redmine/redmine # 备份数据库(PostgreSQL示例) docker exec postgresql-redmine pg_dump -U redmine redmine_production > redmine_db_backup.sql
bash# 恢复数据存储 tar -zxvf redmine_data_backup.tar.gz -C /srv/docker/redmine/redmine # 恢复数据库(PostgreSQL示例) cat redmine_db_backup.sql | docker exec -i postgresql-redmine psql -U redmine redmine_production
可使用cron任务定期执行备份脚本。
通过容器执行Redmine Rake任务:
bashdocker exec -it redmine bundle exec rake redmine:rake_task RAILS_ENV=production
停止并删除当前容器:
bashdocker stop redmine && docker rm redmine
拉取新版本镜像:
bashdocker pull sameersbn/redmine:4.0.4
使用相同的配置启动新容器。
获取容器Shell访问:
bashdocker exec -it redmine bash
| 参数 | 描述 |
|---|---|
DB_ADAPTER | 数据库适配器(mysql2或postgresql) |
DB_HOST | 数据库主机地址 |
DB_PORT | 数据库端口 |
DB_NAME | 数据库名称 |
DB_USER | 数据库用户名 |
DB_PASS | 数据库密码 |
| ` |
以下是 fjudith/redmine 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务