Redmine docker安装
Redmine 是一个开源管理应用程序。它包括一个跟踪问题系统、用于可视化项目和截止日期的甘特图,并支持用于版本控制的 SCM 集成。
Redmine 商标概述:此软件列表由 Bitnami 打包。产品中提及的相应商标归各自公司所有,使用它们并不意味着任何从属关系或认可。
docker run --name redmine bitnami/redmine:latest
警告:此快速设置仅适用于开发环境。建议您更改不安全的默认凭据,并查看“环境变量”部分中的可用配置选项,以实现更安全的部署。
Bitnami 密切跟踪上游源更改,并使用我们的自动化系统及时发布此映像的新版本。
借助 Bitnami 映像,可以尽快获得最新的错误修复和功能。
Bitnami 容器、虚拟机和云映像使用相同的组件和配置方法,可以根据项目需求轻松切换格式。
我们所有的映像都基于 minideb - 一个基于 Debian 的极简主义容器镜像,它为您提供了一个小型的基本容器镜像和领先的 Linux 发行版的熟悉度 - 或 scratch - 一个显式空映像。
Docker Hub 中提供的所有 Bitnami 映像都使用 Notation 进行签名。查看这篇文章以了解如何验证图像的完整性。
Bitnami 容器映像会定期发布,并提供最新的分发包。
希望在生产中使用 Redmine?试用 VMware Tanzu Application Catalog,这是 Bitnami Application Catalog 的企业版。
将 Bitnami 应用程序部署为 Helm Charts 是在 Kubernetes 上开始使用我们的应用程序的最简单方法。在 Bitnami Redmine Chart GitHub 存储库中阅读有关安装的更多信息。
Bitnami 容器可以与 Kubeapps 一起使用,用于集群中 Helm Chart 的部署和管理。
在我们的文档页面中了解有关 Bitnami 标记策略以及滚动标记和不可变标记之间的区别的更多信息。
您可以通过查看分支文件夹中存在的 tags-info.yaml
文件(即 bitnami/ASSET/BRANCH/DISTRO/tags-info.yaml
)来查看不同标签之间的等效性。
通过观看 bitnami/containers GitHub 存储库订阅项目更新。
获取 Bitnami Redmine Docker 镜像的推荐方法是从 Docker Hub 注册表中拉取预构建镜像。
docker pull bitnami/redmine:latest
要使用特定版本,您可以拉取版本控制标签。可以在 Docker Hub 注册表中查看可用版本列表。
docker pull bitnami/redmine:[TAG]
如果需要,还可以通过克隆存储库、更改为包含 Dockerfile 的目录并执行 docker build
命令来自行构建映像。请记住将以下示例命令中的 APP
、 VERSION
和 OPERATING-SYSTEM
path 占位符替换为正确的值。
git clone https://github.com/bitnami/containers.git
cd bitnami/APP/VERSION/OPERATING-SYSTEM
docker build -t bitnami/APP:latest .
Redmine 需要访问 MySQL、MariaDB 或 PostgreSQL 数据库来存储信息。我们将使用适用于 MariaDB 的 Bitnami Docker 映像来满足数据库要求。
docker network create redmine-network
$ docker volume create --name mariadb_data
docker run -d --name mariadb \
--env ALLOW_EMPTY_PASSWORD=yes \
--env MARIADB_USER=bn_redmine \
--env MARIADB_PASSWORD=bitnami \
--env MARIADB_DATABASE=bitnami_redmine \
--network redmine-network \
--volume mariadb_data:/bitnami/mariadb \
bitnami/mariadb:latest
$ docker volume create --name redmine_data
docker run -d --name redmine \
-p 8080:8080 -p 8443:8443 \
--env ALLOW_EMPTY_PASSWORD=yes \
--env REDMINE_DATABASE_USER=bn_redmine \
--env REDMINE_DATABASE_PASSWORD=bitnami \
--env REDMINE_DATABASE_NAME=bitnami_redmine \
--network redmine-network \
--volume redmine_data:/bitnami/redmine \
bitnami/redmine:latest
访问您的应用程序 http://your-ip/
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/redmine/docker-compose.yml > docker-compose.yml
docker-compose up -d
请注意,此文件尚未经过内部测试。因此,我们建议仅将其用于开发或测试目的。对于生产就绪的部署,我们强烈建议使用其关联的 Bitnami Helm 图表。
如果您在 docker-compose.yaml
文件中发现任何问题,请随时报告或按照我们的贡献指南进行修复。
如果删除容器,则所有数据都将丢失,下次运行映像时,将重新初始化数据库。若要避免这种数据丢失,应装载一个即使在删除容器后仍会保留的卷。
为了持久性,您应该在 /bitnami/redmine
路径处挂载一个目录。如果挂载的目录为空,则将在第一次运行时对其进行初始化。此外,您还应该挂载一个卷以持久保存 MariaDB 数据。
上面的示例定义了名为 mariadb_data
和 redmine_data
的 Docker 卷。只要不删除卷,Redmine 应用程序状态就会持续存在。
为避免无意中删除卷,可以将主机目录挂载为数据卷。或者,您可以使用卷插件来托管卷数据。
这需要对以下存储库中 docker-compose.yml
存在的文件进行细微更改:
mariadb:
...
volumes:
- - 'mariadb_data:/bitnami/mariadb'
+ - /path/to/mariadb-persistence:/bitnami/mariadb
...
redmine:
...
volumes:
- - 'redmine_data:/bitnami/redmine'
+ - /path/to/redmine-persistence:/bitnami/redmine
...
-volumes:
- mariadb_data:
- driver: local
- redmine_data:
- driver: local
注意:由于这是一个非根容器,因此挂载的文件和目录必须具有 UID1001
的适当权限。
docker network create redmine-network
docker run -d --name mariadb \
--env ALLOW_EMPTY_PASSWORD=yes \
--env MARIADB_USER=bn_redmine \
--env MARIADB_PASSWORD=bitnami \
--env MARIADB_DATABASE=bitnami_redmine \
--network redmine-network \
--volume /path/to/mariadb-persistence:/bitnami/mariadb \
bitnami/mariadb:latest
docker run -d --name redmine \
-p 8080:8080 -p 8443:8443 \
--env ALLOW_EMPTY_PASSWORD=yes \
--env REDMINE_DATABASE_USER=bn_redmine \
--env REDMINE_DATABASE_PASSWORD=bitnami \
--env REDMINE_DATABASE_NAME=bitnami_redmine \
--network redmine-network \
--volume /path/to/redmine-persistence:/bitnami/redmine \
bitnami/redmine:latest
Name | Description | 默认值 |
---|---|---|
REDMINE_DATA_TO_PERSIST |
相对于 Redmine 安装目录要保留的文件。若要提供多个值,请用空格分隔它们。 |
${REDMINE_CONF_DIR}/configuration.yml ${REDMINE_CONF_DIR}/database.yml files plugins public/plugin_assets |
REDMINE_PORT_NUMBER |
Redmine 将在其中运行的端口号。 |
3000 |
REDMINE_ENV |
Redmine环境模式。允许的值:开发、生产、测试。 |
production |
REDMINE_LANGUAGE |
Redmine 网站默认语言。 |
en |
REDMINE_REST_API_ENABLED |
是否允许对 Redmine 进行 REST API 调用。 |
0 |
REDMINE_LOAD_DEFAULT_DATA |
是否为 Redmine 生成默认数据。 |
yes |
REDMINE_SKIP_BOOTSTRAP |
是否对应用程序执行初始引导。 |
nil |
REDMINE_QUEUE_ADAPTER |
活动作业队列适配器。如果选择“async”或“inline”以外的值,则可能需要安装其他依赖项。 |
inline |
REDMINE_USERNAME |
Redmine 用户名。 | user |
REDMINE_PASSWORD |
Redmine 用户密码。 | bitnami1 |
REDMINE_EMAIL |
Redmine 用户电子邮件地址。 |
user@example.com |
REDMINE_FIRST_NAME |
Redmine 用户名字。 |
UserName |
REDMINE_LAST_NAME |
Redmine 用户姓氏。 |
LastName |
REDMINE_SMTP_HOST |
Redmine SMTP 服务器主机。 |
nil |
REDMINE_SMTP_PORT_NUMBER |
Redmine SMTP 服务器端口号。 |
nil |
REDMINE_SMTP_USER |
Redmine SMTP 服务器用户。 |
nil |
REDMINE_SMTP_PASSWORD |
Redmine SMTP 服务器用户密码。 |
nil |
REDMINE_SMTP_PROTOCOL |
Redmine SMTP 服务器协议。 |
nil |
REDMINE_SMTP_AUTH |
Redmine SMTP 服务器协议。允许的值:login、plain、cram_md5。 |
login |
REDMINE_SMTP_OPENSSL_VERIFY_MODE |
SMTP 设置服务器提供的 SSL 证书的验证级别。允许的值:无,对等。 |
peer |
REDMINE_SMTP_CA_FILE |
SMTP CA 文件的路径。 |
/etc/ssl/certs/ca-certificates.crt |
REDMINE_DATABASE_TYPE |
用于 Redmine 安装的数据库类型。允许的值:mariadb、postgresql。 |
mariadb |
REDMINE_DATABASE_HOST |
数据库服务器主机。 | $REDMINE_DEFAULT_DATABASE_HOST |
REDMINE_DATABASE_PORT_NUMBER |
数据库服务器端口。 | 3306 |
REDMINE_DATABASE_NAME |
数据库名称。 | bitnami_redmine |
REDMINE_DATABASE_USER |
数据库用户名。 | bn_redmine |
REDMINE_DATABASE_PASSWORD |
数据库用户密码。 | nil |
Name | Description | Value |
---|---|---|
REDMINE_BASE_DIR |
Redmine 安装目录。 |
${BITNAMI_ROOT_DIR}/redmine |
REDMINE_CONF_DIR |
Redmine 目录的配置文件。 |
${REDMINE_BASE_DIR}/config |
REDMINE_VOLUME_DIR |
Redmine 目录,用于挂载配置文件。 |
${BITNAMI_VOLUME_DIR}/redmine |
REDMINE_DAEMON_USER |
Redmine 系统用户。 | redmine |
REDMINE_DAEMON_GROUP |
Redmine 系统组。 | redmine |
REDMINE_DEFAULT_DATABASE_HOST |
缺省数据库服务器主机。 |
mariadb |
当您启动 Redmine 镜像时,您可以通过在 docker-compose 文件或 docker run
命令行上传递一个或多个环境变量来调整实例的配置。如果要添加新的环境变量:
-
对于 docker-compose,请在此存储库docker-compose.yml
中的文件中的 application 部分下添加变量名称和值:redmine: ... environment: - REDMINE_PASSWORD=my_password ...
-
对于手动执行,请为每个变量和值添加一个--env
选项:$ docker run -d --name redmine -p 80:8080 -p 443:8443 \ --env REDMINE_PASSWORD=my_password \ --network redmine-tier \ --volume /path/to/redmine-persistence:/bitnami \ bitnami/redmine:latest
以下是使用 Gmail 帐户进行 SMTP 配置的示例:
-
修改此存储库中docker-compose.yml
存在的文件:redmine: ... environment: - REDMINE_DATABASE_USER=bn_redmine - REDMINE_DATABASE_NAME=bitnami_redmine - ALLOW_EMPTY_PASSWORD=yes - REDMINE_SMTP_HOST=smtp.gmail.com - REDMINE_SMTP_PORT=587 - REDMINE_SMTP_USER=your_email@gmail.com - REDMINE_SMTP_PASSWORD=your_password ...
-
对于手动执行:
$ docker run -d --name redmine -p 80:8080 -p 443:8443 \ --env REDMINE_DATABASE_USER=bn_redmine \ --env REDMINE_DATABASE_NAME=bitnami_redmine \ --env REDMINE_SMTP_HOST=smtp.gmail.com \ --env REDMINE_SMTP_PORT=587 \ --env REDMINE_SMTP_USER=your_email@gmail.com \ --env REDMINE_SMTP_PASSWORD=your_password \ --network redmine-tier \ --volume /path/to/redmine-persistence:/bitnami \ bitnami/redmine:latest
Bitnami Redmine 容器支持将 Redmine 应用程序连接到外部数据库。这将是使用 Redmine 外部数据库的一个示例。
-
修改此存储库中docker-compose.yml
存在的文件:redmine: ... environment: - - REDMINE_DATABASE_HOST=mariadb + - REDMINE_DATABASE_HOST=mariadb_host - REDMINE_DATABASE_PORT_NUMBER=3306 - REDMINE_DATABASE_NAME=redmine_db - REDMINE_DATABASE_USER=redmine_user - - ALLOW_EMPTY_PASSWORD=yes + - REDMINE_DATABASE_PASSWORD=redmine_password ...
-
对于手动执行:
$ docker run -d --name redmine\ -p 8080:8080 -p 8443:8443 \ --network redmine-network \ --env REDMINE_DATABASE_HOST=mariadb_host \ --env REDMINE_DATABASE_PORT_NUMBER=3306 \ --env REDMINE_DATABASE_NAME=redmine_db \ --env REDMINE_DATABASE_USER=redmine_user \ --env REDMINE_DATABASE_PASSWORD=redmine_password \ --volume redmine_data:/bitnami/redmine \ bitnami/redmine:latest
如果数据库已经包含以前 Redmine 安装的数据,则需要将变量 REDMINE_SKIP_BOOTSTRAP
设置为 yes
。否则,容器将执行安装向导,并可以修改数据库中的现有数据。请注意,当设置为 REDMINE_SKIP_BOOTSTRAP
yes
时, REDMINE_PASSWORD
环境变量(如 REDMINE_USERNAME
或 REDMINE_EMAIL
)的值将被忽略。
Bitnami Redmine Docker 镜像将容器日志发送到 stdout
。要查看日志,请执行以下操作:
docker logs redmine
或者使用 Docker Compose:
docker-compose logs redmine
如果希望以不同的方式使用容器日志,可以使用该 --log-driver
选项配置容器日志记录驱动程序。在默认配置中,docker 使用 json-file
驱动程序。
要备份您的数据、配置和日志,请按照以下简单步骤操作:
docker stop redmine
或者使用 Docker Compose:
docker-compose stop redmine
我们需要在用于创建备份的容器中挂载两个卷:主机上的一个目录用于存储备份,以及我们刚刚停止的容器中的卷,以便我们可以访问数据。
docker run --rm -v /path/to/redmine-backups:/backups --volumes-from redmine busybox \
cp -a /bitnami/redmine /backups/latest
还原备份非常简单,只需将备份装载为容器中的卷即可。
对于 MariaDB 数据库容器:
$ docker run -d --name mariadb \
...
- --volume /path/to/mariadb-persistence:/bitnami/mariadb \
+ --volume /path/to/mariadb-backups/latest:/bitnami/mariadb \
bitnami/mariadb:latest
对于 Redmine 容器:
$ docker run -d --name redmine \
...
- --volume /path/to/redmine-persistence:/bitnami/redmine \
+ --volume /path/to/redmine-backups/latest:/bitnami/redmine \
bitnami/redmine:latest
Bitnami 在上游制作后不久就提供了 MariaDB 和 Redmine 的最新版本,包括安全补丁。建议按照以下步骤升级容器。我们将在这里介绍 Redmine 容器的升级。有关 MariaDB 升级,请参阅:https://github.com/bitnami/containers/tree/main/bitnami/mariadb#upgrade-this-image
标记 bitnami/redmine:latest
始终指向最新版本。要获取最新版本,只需使用 Docker Hub 重新 docker pull bitnami/redmine:latest
拉取 latest
标记即可。但是,建议使用标记版本。
docker pull bitnami/redmine:latest
使用以下命令停止当前正在运行的容器
docker-compose stop redmine
按照备份容器中的步骤拍摄当前应用程序状态的快照。
通过执行以下命令删除当前正在运行的容器:
docker-compose rm -v redmine
更新 image docker-compose.yml
标记并使用新映像重新创建容器:
docker-compose up -d
-
容器映像的大小已减小。 -
配置逻辑现在基于 rootfs/ 文件夹中的 Bash 脚本。 -
现在可以从另一个安装中使用已填充的 Redmine 数据库。为此,请使用REDMINE_SKIP_BOOTSTRAP
环境变量 ,该变量会强制容器不运行初始 Redmine 设置向导。 -
以下环境变量已弃用。它们将继续像以前一样工作,但在将来的更新中可能会删除对这些支持:
REDMINE_DB_POSTGRES
赞成REDMINE_DATABASE_HOST
.使用时,REDMINE_DATABASE_TYPE=postgresql
也会设置。
REDMINE_DB_MYSQL
,赞成REDMINE_DATABASE_HOST
.使用时,REDMINE_DATABASE_TYPE=mariadb
也会设置。
我们希望您能为这个容器做出贡献。您可以通过创建问题或提交包含您的贡献的拉取请求来请求新功能。
如果在运行此容器时遇到问题,可以提交问题。为了提供更好的支持,请务必填写问题模板。
版权所有 © 2024 Broadcom。术语“Broadcom”是指 Broadcom Inc. 和/或其子公司。
根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非符合许可,否则您不得使用此文件。您可以在以下位置获取许可证的副本
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据本许可分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。请参阅许可证,了解许可证下管理权限和限制的特定语言。