Sign inSign up

tangramor/redmine

By tangramor

Updated over 1 year ago

Production ready Redmine 6/5/4/3 images with Nginx+Passenger on AlmaLinux/CentOS, support MySQL

Image
Integration & delivery
Content management system
1

50K+

tangramor/redmine repository overview

Redmine Docker image with Nginx + Passenger

This image is production ready.

Support MySQL for now.

Versions/Tags

Redmine 6.0.4 (tag 6.0.4, latest )

Based on AlmaLinux 9 image. Ruby version 3.3.7.

Environment:
  Redmine version                6.0.4.stable
  Ruby version                   3.3.7-p123 (2025-01-15) [x86_64-linux]
  Rails version                  7.2.2.1
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
Redmine settings:
  Redmine theme                  Default
SCM:
  Subversion                     1.14.1
  Git                            2.43.5
  Filesystem                     
Redmine plugins:
  no plugin installed
Redmine 5.1.7 (tag 5.1.7 )

Based on AlmaLinux 9 image. Ruby version 3.2.7.

Environment:
  Redmine version                5.1.7.stable
  Ruby version                   3.2.7-p253 (2025-02-04) [x86_64-linux]
  Rails version                  6.1.7.10
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
Redmine settings:
  Redmine theme                  Default
SCM:
  Subversion                     1.14.1
  Git                            2.43.5
  Filesystem                     
Redmine plugins:
  no plugin installed
Redmine 5.0.12 (tag 5.0.12 )

Based on AlmaLinux 9 image. Ruby version 3.1.6.

Environment:
  Redmine version                5.0.12.stable
  Ruby version                   3.1.6-p260 (2024-05-29) [x86_64-linux]
  Rails version                  6.1.7.10
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
Redmine settings:
  Redmine theme                  Default
SCM:
  Subversion                     1.14.1
  Git                            2.43.5
  Filesystem                     
Redmine plugins:
  no plugin installed
Redmine 4.2.11 (tag 4.2.11 )

Based on CentOS 7 image. Ruby version 2.7.8.

Redmine 3.3.3 (tag 3.3.3 )

This old version is using in our company, and the docker scripts were developped on it first.

Based on CentOS 7 image. Ruby version 2.3.8.

You need to notice the start options for MySQL 5.6 --innodb-large-prefix=ON --innodb-file-format=Barracuda. Without these opitons, the database migration will fail.

Usage

For each version/tag, there are related docker-compose.yml file and config folder. You can find them by click the tag's link to Github repository.

Please edit database user/password in docker-compose.yml, config/database.yml and initial.sql:

  • MySQL root user: default password Password1
  • MySQL redmine user: default password Password2

For version 3.3.3 or 4.2.11, please edit the LOCALE environment variable in docker-compose.yml to support different languages, such as LOCALE=zh_CN.UTF-8.

Please edit the volumes mapping in docker-compose.yml.

  • Redmine data: /home/redmine
  • MySQL data: /home/mysql<version>_data
Launch containers

Then you can use docker compose up -d to launch the containers. The scripts will automatically create redmine databases and execute rake db:migrate, rake generate_secret_token commands.

Note: If you don't want to run rake db:migrage but import database by yourself, create an empty file config/init_db.lock.

Once the setup process is done, you can use docker ps or docker compose ps command to check the healthy status of the containers. It costs about 2 minutes.

Load database default dataset

You may want load default dataset according to https://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-7-Database-default-data-set . Following are the steps:

# enter container
docker exec -it -u service -w /var/www/html/redmine redmine bash

# load .bash_profile
$ source ~/.bash_profile

# load default dataset
$ RAILS_ENV=production REDMINE_LANG=zh bundle exec rake redmine:load_default_data
Logging into the application

Use default administrator account to log in http://127.0.0.1 :

  • login: admin
  • password: admin
Secret

The docker scripts generated SECRET_KEY_BASE environment variable. If you want to regenerate it, you may execute following commands:

docker exec -i redmine sed -i '/SECRET_KEY_BASE/d' /home/service/.bash_profile
docker exec -i redmine rm -f /var/www/html/redmine/config/init_secret.lock
docker exec -i redmine bash -c /start.sh
Add Plugins

For example, install redmine_agile. You registered an email to get the download link for the free edition and downloaded redmine_agile-x_x_x-light.zip. Copy this file to /home/redmine/plugins (in my case), and execute following commands:

# enter container
docker exec -it -u service -w /var/www/html/redmine redmine bash

# load .bash_profile
$ source ~/.bash_profile

# unzip plugin archive
$ cd plugins
$ unzip -a redmine_agile-x_x_x-light.zip

# Install required gems
$ cd ..
$ bundle install --without development test --no-deployment

# Migrate plugin's tables
$ bundle exec rake redmine:plugins NAME=redmine_agile RAILS_ENV=production

# Restart Redmine app
$ touch tmp/restart.txt

中文说明

这个镜像已可用于生产环境。

目前仅支持 MySQL。

版本/标签

Redmine 6.0.4 (标签 6.0.4, latest )

基于 AlmaLinux 9 镜像。Ruby 版本 3.3.7

Environment:
  Redmine version                6.0.4.stable
  Ruby version                   3.3.7-p123 (2025-01-15) [x86_64-linux]
  Rails version                  7.2.2.1
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
Redmine settings:
  Redmine theme                  Default
SCM:
  Subversion                     1.14.1
  Git                            2.43.5
  Filesystem                     
Redmine plugins:
  no plugin installed
Redmine 5.1.7 (标签 5.1.7 )

基于 AlmaLinux 9 镜像。Ruby 版本 3.2.7

Environment:
  Redmine version                5.1.7.stable
  Ruby version                   3.2.7-p253 (2025-02-04) [x86_64-linux]
  Rails version                  6.1.7.10
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
Redmine settings:
  Redmine theme                  Default
SCM:
  Subversion                     1.14.1
  Git                            2.43.5
  Filesystem                     
Redmine plugins:
  no plugin installed
Redmine 5.0.12 (标签 5.0.12 )

基于 AlmaLinux 9 镜像。Ruby 版本 3.1.6

Environment:
  Redmine version                5.0.12.stable
  Ruby version                   3.1.6-p260 (2024-05-29) [x86_64-linux]
  Rails version                  6.1.7.10
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
Redmine settings:
  Redmine theme                  Default
SCM:
  Subversion                     1.14.1
  Git                            2.43.5
  Filesystem                     
Redmine plugins:
  no plugin installed
Redmine 4.2.11 (标签 4.2.11 )

基于 CentOS 7 镜像。Ruby 版本 2.7.8

Redmine 3.3.3 (标签 3.3.3 )

这个旧版本在我们公司中使用,docker脚本最初是针对它开发的。

基于 CentOS 7 镜像。Ruby 版本 2.3.8

您需要注意对于 MySQL 5.6 的启动选项 --innodb-large-prefix=ON --innodb-file-format=Barracuda。如果没有这些选项,数据库迁移将失败。

使用方法

对于每个版本/标签,都有相关的 docker-compose.yml 文件和 config 文件夹。您可以通过单击标签的链接到Github存储库中查找它们。

请编辑 docker-compose.ymlconfig/database.ymlinitial.sql 中的数据库 用户名/密码

  • MySQL root 用户:默认密码 Password1
  • MySQL redmine 用户:默认密码 Password2

对于版本 3.3.34.2.11,请编辑 docker-compose.yml 中的 LOCALE 环境变量以支持不同的语言,例如 LOCALE=zh_CN.UTF-8

请编辑 docker-compose.yml 中的卷映射。

  • Redmine 数据:/home/redmine
  • MySQL 数据:/home/mysql<version>_data
启动容器

然后可以使用 docker compose up -d 命令启动容器。脚本将自动创建 redmine 数据库并执行 rake db:migraterake generate_secret_token 命令。

注意:如果您不想运行 rake db:migrage 而是自行导入数据库,请创建一个空文件 config/init_db.lock

完成设置后,您可以使用 docker psdocker compose ps 命令检查容器的 healthy 状态,大约需要 2 分钟。

加载数据库默认数据集

您可能想要根据 https://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-7-Database-default-data-set 加载默认数据集。以下是步骤:

# 进入容器
docker exec -it -u service -w /var/www/html/redmine redmine bash

# 加载 .bash_profile
$ source ~/.bash_profile

# 加载默认数据集
$ RAILS_ENV=production REDMINE_LANG=zh bundle exec rake redmine:load_default_data
登录应用程序

使用默认管理员账户登录 http://127.0.0.1

  • 登录名: admin
  • 密码: admin
密钥

Docker 脚本生成了 SECRET_KEY_BASE 环境变量。如果您想重新生成它,可以执行以下命令:

docker exec -i redmine sed -i '/SECRET_KEY_BASE/d' /home/service/.bash_profile
docker exec -i redmine rm -f /var/www/html/redmine/config/init_secret.lock
docker exec -i redmine bash -c /start.sh
添加插件

例如,安装 redmine_agile。您注册了一个邮箱以获取免费版本的下载链接,并下载了 redmine_agile-x_x_x-light.zip。将此文件复制到 /home/redmine/plugins(以我的情况为例),并执行以下命令:

# 进入容器
docker exec -it -u service -w /var/www/html/redmine redmine bash

# 加载 .bash_profile
$ source ~/.bash_profile

# 解压插件归档文件
$ cd plugins
$ unzip -a redmine_agile-x_x_x-light.zip

# 安装所需的 gem 包
$ cd ..
$ bundle install --without development test --no-deployment

# 迁移插件的数据表
$ bundle exec rake redmine:plugins NAME=redmine_agile RAILS_ENV=production

# 重启 Redmine 应用程序
$ touch tmp/restart.txt

Tag summary

Content type

Image

Digest

sha256:809d73ec5

Size

797.5 MB

Last updated

over 1 year ago

docker pull tangramor/redmine