redmine

sameersbn/redmine Docker 镜像

自动构建

用于构建Redmine项目管理工具的Docker容器镜像,支持MySQL/PostgreSQL数据库、SSL安全配置、插件与主题管理,提供数据持久化、备份及自动化维护功能,适用于快速部署和高效管理Redmine实例。

345 次收藏下载次数: 0状态:自动构建维护者:sameersbn仓库类型:镜像最近更新:7 天前
下载命令
点击查看

Redmine Docker镜像文档

目录

  • 简介
    • 版本
  • 贡献
  • 问题反馈
  • 安装
  • 快速启动
  • 配置
    • 数据存储
    • 数据库
      • MySQL
        • 外部MySQL服务器
        • 链接MySQL容器
      • PostgreSQL
        • 外部PostgreSQL服务器
        • 链接PostgreSQL容器
    • Memcached(可选)
      • 外部Memcached服务器
      • 链接Memcached容器
    • 邮件配置
    • SSL配置
      • 自签名证书生成
      • 服务器安全强化
      • 证书安装
      • 启用HTTPS支持
      • 配置HSTS
      • 负载均衡器下的HTTPS使用
    • 部署到子目录(相对URL根路径)
    • Apache代理作为前端
    • 主机用户和组映射
    • 可用配置参数
  • 插件
    • 安装插件
    • 卸载插件
  • 主题
    • 安装主题
    • 卸载主题
  • 维护
    • 创建备份
    • 恢复备份
    • 自动备份
    • Rake任务
    • 升级
    • Shell访问

简介

用于构建http://www.redmine.org/项目管理工具容器镜像的Dockerfile。Redmine是一个开源的项目管理和缺陷跟踪工具,支持多项目管理、问题跟踪、文档管理、版本控制集成等功能。

版本

当前版本:sameersbn/redmine:4.2.1-1

注意:如果您的安装依赖于各种第三方插件,请坚持使用2.6.xx系列以避免兼容性问题。

贡献

如果您发现此镜像有用,您可以通过以下方式提供帮助:

  • 提交Pull Request,贡献新功能或错误修复
  • 在https://github.com/sameersbn/docker-redmine/issues页面帮助新用户解决问题
  • 通过http://www.damagehead.com/donate/支持此镜像的开发

问题反馈

Docker是一个相对较新的项目,由活跃的开发者和测试者社区进行开发和测试,每个Docker版本都包含许多增强和错误修复。因此,确保您安装了最新版本的Docker非常重要,因为您遇到的问题可能已在新版本中修复。

使用http://docs.docker.com/engine/installation/安装适用于您平台的最新版本Docker引擎,也可通过以下命令安装:

bash
wget -qO- https://get.docker.com/ | sh

Fedora和RHEL/CentOS用户应尝试使用setenforce 0禁用selinux并检查是否解决问题。如果解决,则可能无法提供更多帮助,您可以选择保持selinux禁用(不推荐)或切换到Ubuntu系统。

如果使用最新Docker版本和/或禁用selinux仍无法解决问题,请在https://github.com/sameersbn/docker-redmine/issues页面提交问题报告。报告中请务必提供以下信息:

  • 主机发行版和版本
  • docker version命令的输出
  • docker info命令的输出
  • 用于运行镜像的docker run命令(隐藏敏感信息)

安装

镜像的自动构建可在https://hub.docker.com/r/sameersbn/redmine获取,这是推荐的安装方式。

注意:构建版本也可在https://quay.io/repository/sameersbn/redmine获取

bash
docker pull docker.xuanyuan.run/sameersbn/redmine:latest

从版本2.4.2开始,镜像构建已添加标签。您可以通过指定版本号拉取特定版本的Redmine,例如:

bash
docker pull docker.xuanyuan.run/sameersbn/redmine:4.2.1-1

或者,您也可以手动构建镜像:

bash
docker build -t sameersbn/redmine github.com/sameersbn/docker-redmine

快速启动

最快的启动方式是使用https://docs.docker.com/compose/:

bash
wget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/docker-compose.yml
docker-compose up

或者,您可以按照以下两步指南手动启动redmine容器和支持的postgresql容器:

步骤1:启动postgresql容器

bash
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 \
  docker.xuanyuan.run/sameersbn/postgresql:9.6-4

步骤2:启动redmine容器

bash
docker run --name=redmine -d \
  --link=postgresql-redmine:postgresql --publish=10083:80 \
  --env='REDMINE_PORT=10083' \
  --volume=/srv/docker/redmine/redmine:/home/redmine/data \
  --volume=/srv/docker/redmine/redmine-logs:/var/log/redmine/ \
  docker.xuanyuan.run/sameersbn/redmine:4.2.1-1

注意:请允许一两分钟时间让Redmine应用启动。

在浏览器中访问http://localhost:10083,使用默认用户名和密码登录:

  • 用户名:admin
  • 密码:admin

创建任何项目前,请确保访问"管理"链接并"加载默认配置"。

现在您已启动Redmine应用并可进行测试。如果要在生产环境中使用,请继续阅读下文。

本文档其余部分将使用docker命令行。您也可以将配置调整为docker-compose.yml文件。

配置

数据存储

文件存储需要在以下位置挂载卷:

  • /home/redmine/data:存储Redmine数据
  • /var/log/redmine:存储服务器日志

注意

现有用户需要将现有文件目录移动到/srv/docker/redmine/redmine/内。

bash
mkdir -p /srv/docker/redmine/redmine
mv /opt/redmine/files /srv/docker/redmine/redmine

SELinux用户还需要更改挂载点的安全上下文,以确保与selinux兼容:

bash
mkdir -p /srv/docker/redmine/redmine
sudo chcon -Rt svirt_sandbox_file_t /srv/docker/redmine/redmine

可以通过在docker run命令中指定-v选项来挂载卷:

bash
docker run --name=redmine -it --rm \
  --volume=/srv/docker/redmine/redmine:/home/redmine/data \
  --volume=/srv/docker/redmine/redmine-logs:/var/log/redmine/ \
  docker.xuanyuan.run/sameersbn/redmine:4.2.1-1

数据库

Redmine使用数据库后端存储数据。

MySQL

内部MySQL服务器

镜像中已移除内部MySQL服务器。请改用链接的mysql或postgresql容器,或连接外部mysql或postgresql服务器。

如果您一直在使用内部MySQL服务器,请按照以下说明迁移到链接的MySQL容器:

假设您的MySQL数据位于/srv/docker/redmine/mysql

bash
docker run --name=mysql-redmine -d \
  --volume=/srv/docker/redmine/mysql:/var/lib/mysql \
  docker.xuanyuan.run/sameersbn/mysql:5.7.22-1

这将启动一个包含您现有MySQL数据的MySQL容器。现在登录MySQL容器,为现有redmine_production数据库创建用户。

接下来,只需使用--link=mysql-redmine:mysql选项将此MySQL容器链接到Redmine容器,并提供DB_NAME、DB_USER和DB_PASS参数。

有关更多信息,请参考链接MySQL容器。

外部MySQL服务器

镜像可配置为使用外部MySQL数据库,而非内部启动MySQL服务器。启动Redmine镜像时,应使用环境变量指定数据库配置。

启动Redmine镜像前,请创建Redmine用户和数据库:

sql
mysql -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应用:

bash
docker 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 \
  --volume=/srv/docker/redmine/redmine-logs:/var/log/redmine/ \
  docker.xuanyuan.run/sameersbn/redmine:4.2.1-1

这将初始化Redmine数据库,几分钟后您的Redmine实例将准备就绪。

链接MySQL容器

可以将此镜像与MySQL容器链接以满足数据库需求。链接Redmine镜像时,MySQL服务器容器的别名应设置为mysql。

如果链接了MySQL容器,仅DB_ADAPTER、DB_HOST和DB_PORT设置会通过链接自动获取。您可能仍需要设置其他数据库连接参数,如DB_NAME、DB_USER和DB_PASS等。

为说明与MySQL容器的链接,我们将使用https://github.com/sameersbn/docker-mysql镜像。在生产环境中使用docker-mysql时,应挂载卷用于MySQL数据存储。有关详细信息,请参考docker-mysql的https://github.com/sameersbn/docker-mysql/blob/master/README.md。

首先,从docker索引拉取MySQL镜像:

bash
docker pull docker.xuanyuan.run/sameersbn/mysql:5.7.22-1

为实现数据持久化,创建MySQL存储目录并启动容器。SELinux用户还需要更改挂载点的安全上下文:

bash
mkdir -p /srv/docker/redmine/mysql
sudo chcon -Rt svirt_sandbox_file_t /srv/docker/redmine/mysql

运行命令如下:

bash
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 \
  docker.xuanyuan.run/sameersbn/mysql:5.7.22-1

上述命令将创建一个名为redmine_production的数据库,并创建一个名为redmine、密码为password的用户,该用户对redmine_production数据库具有完全远程访问权限。

现在可以启动Redmine应用:

bash
docker run --name=redmine -it --rm --link=mysql-redmine:mysql \
  --volume=/srv/docker/redmine/redmine:/home/redmine/data \
  --volume=/srv/docker/redmine/redmine-logs:/var/log/redmine/ \
  docker.xuanyuan.run/sameersbn/redmine:4.2.1-1

此处,镜像将通过docker链接自动从MySQL容器获取DB_NAME、DB_USER和DB_PASS变量,这适用于以下镜像:

  • https://hub.docker.com/_/mysql/
  • https://quay.io/repository/sameersbn/mysql/
  • https://hub.docker.com/r/centurylink/mysql/
  • https://hub.docker.com/r/orchardup/mysql/

PostgreSQL

外部PostgreSQL服务器

镜像也支持使用外部PostgreSQL服务器,同样通过环境变量控制:

sql
CREATE ROLE redmine with LOGIN CREATEDB PASSWORD 'password';
CREATE DATABASE redmine_production;
GRANT ALL PRIVILEGES ON DATABASE redmine_production to redmine;

现在可以启动Redmine应用:

bash
docker 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 \
  --volume=/srv/docker/redmine/redmine-logs:/var/log/redmine/ \
  docker.xuanyuan.run/sameersbn/redmine:4.2.1-1

这将初始化Redmine数据库,几分钟后您的Redmine实例将准备就绪。

链接PostgreSQL容器

可以将此镜像与PostgreSQL容器链接以满足数据库需求。链接Redmine镜像时,PostgreSQL服务器容器的别名应设置为postgresql。

如果链接了PostgreSQL容器,仅DB_ADAPTER、DB_HOST和DB_PORT设置会通过链接自动获取。您可能仍需要设置其他数据库连接参数,如DB_NAME、DB_USER和DB_PASS等。

为说明与PostgreSQL容器的链接,我们将使用https://github.com/sameersbn/docker-postgresql镜像。在生产环境中使用postgresql镜像时,应挂载卷用于PostgreSQL数据存储。有关详细信息,请参考docker-postgresql的https://github.com/sameersbn/docker-postgresql/blob/master/README.md。

首先,从docker索引拉取PostgreSQL镜像:

bash
docker pull docker.xuanyuan.run/sameersbn/postgresql:9.6-4

为实现数据持久化,创建PostgreSQL存储目录并启动容器。SELinux用户还需要更改挂载点的安全上下文:

bash
mkdir -p /srv/docker/redmine/postgresql
sudo chcon -Rt svirt_sandbox_file_t /srv/docker/redmine/postgresql

运行命令如下:

bash
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 \
  docker.xuanyuan.run/sameersbn/postgresql:9.6-4

上述命令将创建一个名为redmine_production的数据库,并创建一个名为redmine、密码为password的用户,该用户对redmine_production数据库具有访问权限。

现在可以启动Redmine应用:

bash
docker run --name=redmine -it --rm --link=postgresql-redmine:postgresql \
  --volume=/srv/docker/redmine/redmine:/home/redmine/data \
  --volume=/srv/docker/redmine/redmine-logs:/var/log/redmine/ \
  docker.xuanyuan.run/sameersbn/redmine:4.2.1-1

此处,镜像将通过docker链接自动从PostgreSQL容器获取DB_NAME、DB_USER和DB_PASS变量,这适用于以下镜像:

  • https://hub.docker.com/_/postgres/
  • https://quay.io/repository/sameersbn/postgresql/
  • https://hub.docker.com/r/orchardup/postgresql/
  • https://hub.docker.com/r/paintedfox/postgresql/

Memcached(可选)

此镜像可(可选)配置为使用Memcached服务器来加速Redmine,当用户数量较多时特别有用。

外部Memcached服务器

镜像可配置为使用外部Memcached服务器,通过环境变量MEMCACHE_HOST和MEMCACHE_PORT指定Memcached服务器主机和端口:

假设Memcached服务器主机为192.168.1.100

bash
docker run --name=redmine -it --rm

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 redmine 镜像标签

docker pull docker.xuanyuan.run/sameersbn/redmine:<标签>

DockerHub 原生拉取命令

docker pull sameersbn/redmine:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告