公司注册网站源码,阿里巴巴企业邮箱,电器网站建设目的,seo网站优化服务商原文见#xff1a; https://docs.docker.com/samples/library/redmine/ 简单翻译整理。 文章目录1. 用SQLite3运行Redmine2. 使用数据库容器运行Redmine2.1. 启动数据库容器2.2. 启动redmine3. 通过docker stack deploy或docker-compose方式运行4. 访问应用程序4.1. 存储数据的…原文见 https://docs.docker.com/samples/library/redmine/ 简单翻译整理。
文章目录1. 用SQLite3运行Redmine2. 使用数据库容器运行Redmine2.1. 启动数据库容器2.2. 启动redmine3. 通过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_PASSWORDsecret -e POSTGRES_USERredmine postgresMySQL的替代-e REDMINE_DB_POSTGRESsome-postgres与-e REDMINE_DB_MYSQLsome-mysql运行管理平台时
$ docker run -d --name some-mysql --network some-network -e MYSQL_USERredmine -e MYSQL_PASSWORDsecret -e MYSQL_DATABASEredmine -e MYSQL_RANDOM_ROOT_PASSWORD1 mysql:5.72.2. 启动redmine
$ docker run -d --name some-redmine --network some-network -e REDMINE_DB_POSTGRESsome-postgres -e REDMINE_DB_USERNAMEredmine -e REDMINE_DB_PASSWORDsecret redmine3. 通过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:8080http://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为3306PostgreSQL为5432SQLite为空字符串。
REDMINE_DB_USERNAME 此变量设置Redmine和任何rake任务用于连接到指定数据库的用户。如果未指定则默认root为MySQLpostgresPostgreSQL或redmineSQLite。
REDMINE_DB_PASSWORD 此变量设置指定用户在连接数据库时将使用的密码。没有默认值。
REDMINE_DB_DATABASE 此变量设置Redmine将在指定数据库服务器中使用的数据库。如果没有指定它将默认redmine为MySQLREDMINE_DB_USERNAMEPostgreSQL或sqlite/redmine.dbSQLite的值。
REDMINE_DB_ENCODING 此变量设置连接到数据库服务器时要使用的字符编码。如果未指定它将使用默认的mysql2库UTF-8用于MySQLutf8PostgreSQL或utf8SQLite。
REDMINE_NO_DB_MIGRATE 此变量允许您控制是否rake db:migrate在容器启动时运行。只需将变量设置为非空字符串1true并且迁移脚本不会自动在容器启动时运行。
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_MYSQLREDMINE_DB_POSTGRESREDMINE_DB_PORTREDMINE_DB_USERNAMEREDMINE_DB_PASSWORDREDMINE_DB_DATABASEREDMINE_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镜像说明以获取如何安装软件包的示例。