原文见: https://docs.docker.com/samples/library/redmine/
简单翻译整理。

文章目录

  • 1. 用SQLite3运行Redmine
  • 2. 使用数据库容器运行Redmine
    • 2.1. 启动数据库容器
    • 2.2. 启动redmine
  • 3. 通过docker stack deploy或docker-compose方式运行
  • 4. 访问应用程序
    • 4.1. 存储数据的位置
    • 4.2. 端口映射
    • 4.3. 环境变量
    • 4.3. Docker的秘密
    • 4.4. 镜像变体

1. 用SQLite3运行Redmine

这是最简单的设置; 刚刚运行redmine。

$ docker run -d --name some-redmine redmine

注意:不适合多用户生产使用(见redmine wiki 中说明)

2. 使用数据库容器运行Redmine

建议使用数据库服务器运行Redmine。

2.1. 启动数据库容器

  • PostgreSQL的
$ docker run -d --name some-postgres --network some-network -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=redmine postgres
  • MySQL的(替代-e REDMINE_DB_POSTGRES=some-postgres与-e REDMINE_DB_MYSQL=some-mysql运行管理平台时)
$ docker run -d --name some-mysql --network some-network -e MYSQL_USER=redmine -e MYSQL_PASSWORD=secret -e MYSQL_DATABASE=redmine -e MYSQL_RANDOM_ROOT_PASSWORD=1 mysql:5.7

2.2. 启动redmine

$ docker run -d --name some-redmine --network some-network -e REDMINE_DB_POSTGRES=some-postgres -e REDMINE_DB_USERNAME=redmine -e REDMINE_DB_PASSWORD=secret redmine

3. 通过docker stack deploy或docker-compose方式运行

一个名为stack.yml 的redmine例子:

version: '3.1'  # 指定docker-compose.yml 文件的写法格式,需要和docker版本对应上services: # 配置多个容器的集合redmine:image: redmine       # 指定服务所使用的镜像restart: alwaysports:               # 指定对外暴露的端口- 8080:3000environment:REDMINE_DB_MYSQL: dbREDMINE_DB_PASSWORD: exampledb:image: mysql:5.7restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: exampleMYSQL_DATABASE: redmine

运行docker stack deploy -c stack.yml redmine(或docker-compose -f stack.yml up),等待它完全初始化,访问:
http://swarm-ip:8080,http://localhost:8080或http://host-ip:8080(如适用)。

替代Web服务器
此存储库中的其他标记(如passenger使用的–links标记rails s)使用相同的环境和使用WEBrick()的默认标记,而是为您提供不同的Web和应用程序服务器的选项。passenger使用Phusion Passenger。tini用于收割僵尸。

4. 访问应用程序

目前,上游的默认用户和密码是admin / admin(登录到应用程序)。

4.1. 存储数据的位置

重要说明:有几种方法可以存储在Docker容器中运行的应用程序使用的数据。我们鼓励redmine镜像用户熟悉可用选项,包括:

让Docker 通过使用自己的内部卷管理将文件写入主机系统上的磁盘来管理文件的存储。这是默认设置,对用户来说简单且相当透明。缺点是文件可能很难找到直接在主机系统上运行的工具和应用程序,即外部容器。
在主机系统(容器外部)上创建一个数据目录,并将其挂载到容器内可见的目录中。这将数据库文件放置在主机系统上的已知位置,并使主机系统上的工具和应用程序可以轻松访问这些文件。缺点是用户需要确保目录存在,并且例如正确设置了主机系统上的目录权限和其他安全机制。
Docker文档是了解不同存储选项和变体的一个很好的起点,并且有多个博客和论坛帖子在这个领域进行讨论和提供建议。我们将简单地显示上面后一个选项的基本过程:

在主机系统上的适当卷上创建数据目录,例如/my/own/datadir。
redmine像这样启动你的容器:

$ docker run -d --name some-redmine -v /my/own/datadir:/usr/src/redmine/files --link some-postgres:postgres redmine
-v /my/own/datadir:/usr/src/redmine/files命令的一部分/my/own/datadir将底层主机系统中的目录安装在/usr/src/redmine/files容器内,Redmine将存储上载的文件。

4.2. 端口映射

如果您希望能够在没有容器IP的情况下从主机访问实例,则可以使用标准端口映射。只需添加-p 3000:3000到docker run参数,然后访问或者http://localhost:3000或http://host-ip:3000在浏览器中。

4.3. 环境变量

启动redmine映像时,可以通过在docker run命令行上传递一个或多个环境变量来调整实例的配置。

REDMINE_DB_MYSQL 要么 REDMINE_DB_POSTGRES
这两个变量允许您分别设置MySQL或PostgreSQL主机的主机名或IP地址。这些值是互斥的,因此如果两者都设置,则它是未定义的行为。如果两个变量都未设置,则镜像将回退到使用SQLite。

REDMINE_DB_PORT
此变量允许您指定自定义数据库连接端口。如果未指定,它将默认为常规连接端口:MySQL为3306,PostgreSQL为5432,SQLite为空字符串。

REDMINE_DB_USERNAME
此变量设置Redmine和任何rake任务用于连接到指定数据库的用户。如果未指定,则默认root为MySQL,postgresPostgreSQL或redmineSQLite。

REDMINE_DB_PASSWORD
此变量设置指定用户在连接数据库时将使用的密码。没有默认值。

REDMINE_DB_DATABASE
此变量设置Redmine将在指定数据库服务器中使用的数据库。如果没有指定,它将默认redmine为MySQL,REDMINE_DB_USERNAMEPostgreSQL或sqlite/redmine.dbSQLite的值。

REDMINE_DB_ENCODING
此变量设置连接到数据库服务器时要使用的字符编码。如果未指定,它将使用默认的mysql2库(UTF-8)用于MySQL,utf8PostgreSQL或utf8SQLite。

REDMINE_NO_DB_MIGRATE
此变量允许您控制是否rake db:migrate在容器启动时运行。只需将变量设置为非空字符串1,true并且迁移脚本不会自动在容器启动时运行。

db:migrate如果你用默认值以外的东西开始你的形象也将无法运行CMD,像bash。有关docker-entrypoint.sh详细信息,请参阅镜像中的当前内容

REDMINE_PLUGINS_MIGRATE
此变量允许您控制是否rake redmine:plugins:migrate在容器启动时运行。只需设置变量像一个非空字符串1或true与迁移脚本将在每个容器启动自动运行。它将在之后运行db:migrate。

redmine:plugins:migrate如果你用默认值以外的东西开始你的形象将不会运行CMD,喜欢bash。有关docker-entrypoint.sh详细信息,请参阅镜像中的当前内容

REDMINE_SECRET_KEY_BASE
此变量用于创建初始值config/secrets.yml并设置该secret_key_base值,“Rails使用该值来编码存储会话数据的cookie,从而防止其被篡改。生成新的秘密令牌会在重新启动“(会话存储)后使所有现有会话无效。如果您未设置此变量或提供secrets.yml将使用的变量生成rake generate_secret_token。

4.3. Docker的秘密

作为通过环境变量传递敏感信息的替代方法,_FILE可以将其附加到先前列出的环境变量,从而使初始化脚本从容器中存在的文件加载这些变量的值。特别是,这可以用于从存储在/run/secrets/<secret_name>文件中的Docker机密加载密码。例如:

$ docker run -d --name some-redmine -e REDMINE_DB_MYSQL_FILE=/run/secrets/mysql-host -e REDMINE_DB_PASSWORD_FILE=/run/secrets/mysql-root redmine:tag
目前,这仅支持REDMINE_DB_MYSQL,REDMINE_DB_POSTGRES,REDMINE_DB_PORT,REDMINE_DB_USERNAME,REDMINE_DB_PASSWORD,REDMINE_DB_DATABASE,REDMINE_DB_ENCODING,和REDMINE_SECRET_KEY_BASE。

4.4. 镜像变体

该redmine镜像有许多种,每一个设计用于特定的使用情况。

redmine:
这是事实上的形象。如果您不确定您的需求是什么,您可能想要使用这个。它被设计为既可以用作丢弃容器(安装源代码并启动容器来启动应用程序),也可以用作构建其他镜像的基础。

redmine:-alpine
该镜像是基于流行的高山Linux项目,可用的alpine官方镜像。Alpine Linux比大多数分发基础镜像(约5MB)小得多,因此通常会导致更小的镜像。

当最终镜像尺寸尽可能小时,强烈建议使用此变体。需要注意的主要注意事项是它确实使用musl libc而不是glibc和朋友,因此某些软件可能会遇到问题,具体取决于其libc要求的深度。但是,大多数软件都没有这个问题,因此这种变体通常是一个非常安全的选择。请参阅此黑客新闻评论主题,以获取有关可能出现的问题的更多讨论以及使用基于Alpine的镜像的一些比较/比较。

为了最小化镜像大小,在基于Alpine的镜像中包含其他相关工具(例如git或bash)并不常见。使用此镜像作为基础,在您自己的Dockerfile中添加所需的内容(如果您不熟悉,请参阅alpine镜像说明以获取如何安装软件包的示例)。

翻译:Docker方式安装redmine相关推荐

  1. Docker 方式安装 Nginx 、阿里云服务器上装 Ngnix

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 非 Docker 方式安装,直接 Linux 安装见另一文:Linux 上 安装 nginx .阿里 ...

  2. 以Docker方式安装和配置Kong网关和Konga控制台

    文章目录 以Docker方式安装和配置Kong网关和Konga控制台 前言 安装Kong 创建容器网络 启动PostgreSQL数据库 初始化数据 对Kong Admin API作安全防护 启动Kon ...

  3. Docker方式安装巡风

    Docker方式安装巡风系统[基于CentOS7.6] # yum update # curl -sSL https://get.docker.com/ | sh # yum install git ...

  4. Docker 方式安装、运行 Nexus3 、重置默认密码、推送 jar 包到私服

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 找镜像: docker search nexus 2. 拉取镜像:(我已经拉取过,不选择版本时 ...

  5. Docker方式安装showdoc

    基础安装 安装前请确保你的环境已经装好了docker服务 .docker的安装教程在网上比较多,可以搜索了解下.这里重点介绍showdoc # 原版官方镜像安装命令(中国大陆用户不建议直接使用原版镜像 ...

  6. ubuntu18.04 nvidia gpu驱动与tensorflow-gpu以 docker方式安装

    通过ubuntu标准库自动安装驱动 搜索系统当前支持的驱动(此方法可能无法安装最新版) $ ubuntu-drivers devices == /sys/devices/pci0000:00/0000 ...

  7. Macbook pro下通过docker方式安装kafka

    安装背景 为了测试kafka推送日志,为今后的大数据作准备,在本地docker上安装kafka.记录步骤以备忘. 前提是安装docker,可以自行搜索下. 安装步骤 1. docker拉取Zookee ...

  8. N2N(docker方式安装)实现远程访问家里群晖

    N2N(docker 安装)实现远程访问家里群晖 前言 部署 阿里云ECS安装n2n supernode 及 edge 节点 在黑群晖上安装 edge节点 windows 安装edge节点 测试 遇到 ...

  9. Linux_WebShell:GateOne Docker方式安装与使用

    GateOne是一款不错的WebShell,在完成配置之后我们可以轻松通过浏览器的方式登入到我们的Linux设备shell上面去. 这里采用容器的方式来运行它,GateOne支持容器镜像,这样的话我们 ...

最新文章

  1. Revit:概念建模环境技能学习 Revit: Conceptual Modeling Environment
  2. 600页!分享珍藏很久的《推荐系统学习手册》(附链接)
  3. Realm数据库拾遗
  4. centos源码安装mysql5.7.25-boost
  5. word转pdf后公式出现乱码怎么办?
  6. linux cp 覆盖不确认,cp命令强制覆盖,不提示确认信息
  7. 互联网1分钟 |0102
  8. 利用SQL对数据进行清洗处理
  9. Android之解决aidl里面函数参数太大不能跨进程通信的问题
  10. (王道408考研数据结构)第七章查找-第二节3:分块查找
  11. 单例模式的两种实现方法:饿汉式和懒汉式以及民间懒汉式和登记式
  12. iVMS-4200 Vs区别_29931红单足球预测 法甲 21:00 安格斯 VS 梅斯
  13. GoComb.com搜索引擎问世:改进搜索体验
  14. 如何快速从入门到精通linux
  15. ls mac 显示最近修改日期_Mac命令行常用操作
  16. Phonetic symbol 单元音 - 长元音 -- ɜː (新) / ə: (旧) 与 ɔː
  17. ESXI 通过naa在主机上找到物理磁盘的位置
  18. 什么是CRM系统,它如何支持客户营销管理?
  19. 见证边缘的力量!全球边缘计算大会•上海站顺利召开!
  20. 双节快乐!| 中秋的月亮,今晚圆

热门文章

  1. 有人知道 I3C 吗?
  2. 对比一段ADC键值读取的代码
  3. RK方案 manifest.xml编译问题,并解决方案
  4. 中ridge_10种线性代数在数据科学中的强大应用(内附多种资源)
  5. 博客目录列表(C与Linux部分)
  6. 文件流、目录流、文件描述符总结
  7. idea java 非法字符_解决IDEA显示非法字符 \ufeff 的问题
  8. rds基于什么开发_java rds
  9. project ‘org.springframework.boot:spring-boot-starter-parent:2.1.4.RELEASE‘ not found
  10. 一、操作系统——处理机(作业)调度算法:先来先服务算法FCFS、最短作业优先算法SJF(非抢占式)、 最短剩余时间优先算法SRTN(抢占式)、最高响应比优先算法HRRN