翻译:Docker方式安装redmine
原文見: 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的
- MySQL的(替代-e REDMINE_DB_POSTGRES=some-postgres與-e REDMINE_DB_MYSQL=some-mysql運行管理平臺時)
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 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: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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何开发小程序开发者工具?
- 下一篇: 一篇文章学习Python中的多线程