本镜像用于构建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 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务