测试

Redmine docker安装


Redmine 的 Bitnami 软件包

 什么是 Redmine?


Redmine 是一个开源管理应用程序。它包括一个跟踪问题系统、用于可视化项目和截止日期的甘特图,并支持用于版本控制的 SCM 集成。


Redmine 商标概述:此软件列表由 Bitnami 打包。产品中提及的相应商标归各自公司所有,使用它们并不意味着任何从属关系或认可。

 TL;博士

docker run --name redmine bitnami/redmine:latest




警告:此快速设置仅适用于开发环境。建议您更改不安全的默认凭据,并查看“环境变量”部分中的可用配置选项,以实现更安全的部署。

 为什么使用Bitnami Images?


  • Bitnami 密切跟踪上游源更改,并使用我们的自动化系统及时发布此映像的新版本。

  • 借助 Bitnami 映像,可以尽快获得最新的错误修复和功能。

  • Bitnami 容器、虚拟机和云映像使用相同的组件和配置方法,可以根据项目需求轻松切换格式。

  • 我们所有的映像都基于 minideb - 一个基于 Debian 的极简主义容器镜像,它为您提供了一个小型的基本容器镜像和领先的 Linux 发行版的熟悉度 - 或 scratch - 一个显式空映像。

  • Docker Hub 中提供的所有 Bitnami 映像都使用 Notation 进行签名。查看这篇文章以了解如何验证图像的完整性。

  • Bitnami 容器映像会定期发布,并提供最新的分发包。


希望在生产中使用 Redmine?试用 VMware Tanzu Application Catalog,这是 Bitnami Application Catalog 的企业版。


如何在 Kubernetes 中部署 Redmine?


将 Bitnami 应用程序部署为 Helm Charts 是在 Kubernetes 上开始使用我们的应用程序的最简单方法。在 Bitnami Redmine Chart GitHub 存储库中阅读有关安装的更多信息。


Bitnami 容器可以与 Kubeapps 一起使用,用于集群中 Helm Chart 的部署和管理。


支持的标签和相应的 Dockerfile 链接


在我们的文档页面中了解有关 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 命令来自行构建映像。请记住将以下示例命令中的 APPVERSIONOPERATING-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 命令行


步骤 1:创建网络

docker network create redmine-network




步骤 2:为 MariaDB 持久性创建卷并创建 MariaDB 容器

$ 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




步骤 3:为 Redmine 持久性创建卷并启动容器

$ 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/


使用 Docker Compose 运行应用程序

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_dataredmine_data 的 Docker 卷。只要不删除卷,Redmine 应用程序状态就会持续存在。


为避免无意中删除卷,可以将主机目录挂载为数据卷。或者,您可以使用卷插件来托管卷数据。


使用 Docker Compose 将主机目录挂载为数据卷


这需要对以下存储库中 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




注意:由于这是一个非根容器,因此挂载的文件和目录必须具有 UID 1001 的适当权限。


使用 Docker 命令行将主机目录挂载为数据卷


第 1 步:创建网络(如果不存在)

docker network create redmine-network




第2步。创建具有主机卷的 MariaDB 容器

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




第 3 步。使用主机卷创建 Redmine 容器

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 配置


以下是使用 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




将 Redmine 容器连接到现有数据库


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_USERNAMEREDMINE_EMAIL )的值将被忽略。

 伐木


Bitnami Redmine Docker 镜像将容器日志发送到 stdout 。要查看日志,请执行以下操作:

docker logs redmine




或者使用 Docker Compose:

docker-compose logs redmine




如果希望以不同的方式使用容器日志,可以使用该 --log-driver 选项配置容器日志记录驱动程序。在默认配置中,docker 使用 json-file 驱动程序。

 保养


备份容器


要备份您的数据、配置和日志,请按照以下简单步骤操作:


步骤 1:停止当前正在运行的容器

docker stop redmine




或者使用 Docker Compose:

docker-compose stop redmine




步骤 2:运行备份命令


我们需要在用于创建备份的容器中挂载两个卷:主机上的一个目录用于存储备份,以及我们刚刚停止的容器中的卷,以便我们可以访问数据。

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 标记即可。但是,建议使用标记版本。


第 1 步:获取更新的映像

docker pull bitnami/redmine:latest




步骤 2:停止正在运行的容器


使用以下命令停止当前正在运行的容器

docker-compose stop redmine




步骤 3:拍摄应用程序状态的快照


按照备份容器中的步骤拍摄当前应用程序状态的快照。


步骤 4:删除当前正在运行的容器


通过执行以下命令删除当前正在运行的容器:

docker-compose rm -v redmine




步骤 5:运行新映像


更新 image docker-compose.yml 标记并使用新映像重新创建容器:

docker-compose up -d



 显著变化

4.2.1-debian-10-r70


  • 容器映像的大小已减小。


  • 配置逻辑现在基于 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


除非适用法律要求或书面同意,否则根据本许可分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。请参阅许可证,了解许可证下管理权限和限制的特定语言。

留言

您的邮箱地址不会被公开。 必填项已用 * 标注