Taiga容器部署

店家小二發表於2018-12-18
taiga

taiga 元件介紹

Taiga-front

由angularjs和coffeescript搭建的一個前端,可以執行在nginx中的靜態網站。taiga/taiga-front

taiga/taiga-front-dist 是taiga-front編譯完版本,如果只是部署,可以使用這個版本。

Taiga-back

由django和python3編寫的一個後臺APIs服務。taiga/taiga-back

Taiga-docker 部署步驟

準備一個有docker環境的機器,具體安裝參見官方Docker Install

克隆該專案到本地

碼雲的專案地址https://gitee.com/tableExchange/taiga-docker.git

Github的分支地址https://github.com/jussker/taiga-docker.git

原專案是GitHub上的ipedrazas維護的,地址https://github.com/ipedrazas/taiga-docker/

因為用原專案教程沒部署起來,所以分支重新修改了一下。最近原專案更新了,有興趣的可以嘗試下,增加了k8s的部署指令碼。

git clone -b master --single-branch https://gitee.com/tableExchange/taiga-docker.git ~/taiga-docker
cd ~/taiga-docker

編譯docker映象

cd ~/taiga-docker/backend
./build.sh jussker-dev/taiga-back:dev

其中將jussker-dev/taiga-back:dev換成自己的映象名稱

cd ~/taiga-docker/frontend
./build.sh jussker-dev/taiga-front:dev

其中將jussker-dev/taiga-front:dev換成自己的映象名稱

修改docker-compose.yml

將映象改為自己的映象名稱,修改修改的地方如下所示:

docker-compose.yml

...
 taigabackend:
 image: jussker-dev/taiga-back:dev
...
 taigafrontend:
 image: jussker-dev/taiga-front:dev
...

啟動服務

如果環境中已經有容器編排工具, 則將docker-compose.yml提交給編排工具進行部署。

如果環境中還沒有,則可以安裝docker-compose,安裝步驟參考官方的Install Docker Compose.這裡演示使用docker-compose.

如果是部署在伺服器上,則將docker-compose檔案中的localhost替換為實際ip,如果檔案中的埠已經被佔用,則修改為新埠。8000後端api服務埠,8080前端服務埠。

cd ~/taiga-docker
docker-compose create
docker-compose start 

進行初始化

初始化過程需要進入taigabackend容器中

docker ps 

找到taigabackend的容器id

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ef5f0541b8e0 jussker-dev/taiga-front:dev "/taiga/run.sh" 2 minutes ago Up 52 seconds 0.0.0.0:8080->80/tcp taigadocker_taigafrontend_1
8a58837b1201 jussker-dev/taiga-back:dev "python manage.py ..." 2 minutes ago Up 52 seconds 0.0.0.0:8000->8000/tcp taigadocker_taigabackend_1
92b4f7a956cc postgres "docker-entrypoint..." 2 minutes ago Up 52 seconds 5432/tcp taigadocker_postgresdb_1
#進入容器
docker exec -it 8a58837b1201 /bin/bash

這樣我們進入到容器中

初始化過程需要兩步,初始化資料庫和初始化靜態檔案,如下命令在taigabackend的容器中執行

#初始化資料庫
chmod u+x ./regenerate.sh
./regenerate.sh

#初始化靜態檔案
python manage.py collectstatic
#退出容器 exit 

檢視介面

登陸taiga的地址http://localhost:8080/即可檢視。管理員賬戶admin,密碼123123

Django的管理介面http://localhost:8080/admin/可以檢視資料庫後設資料。管理員賬戶admin,密碼123123

特殊情況

如果需要將taiga的服務部署在不同的機器或者網段中,則需要注意將如下環境變數配置稱為實際的地址

  • "MEDIA_URL=http://taiga-front:port/media/"
  • "STATIC_URL=http://taiga-front:port/static/"

將後端儲存使用者檔案的uri或url 配置成實際提供檔案服務的地址。如果有必要,也是要修改前端nginx代理。

需要了解的是,Taiga中檔案或資源地址是由後端生成好後,傳送給前端服務的,地址就是由MEDIA_URLSTATIC_URL決定其字首。

MEDIA_URL=/media/,則實際的地址為http://taiga-backend:8001/media/

MEDIA_URL=http//192.168.1.101:8001/media/,則實際地址還是http//192.168.1.101:8001/media/

docker-compose中環境變數說明

Postgres的配置

  • "POSTGRES_HOST=postgresdb" 資料地址
  • "POSTGRES_DB=taiga" 資料庫名
  • "POSTGRES_USER=taiga" 資料庫登陸使用者名稱
  • "POSTGRES_PASSWORD=taiga" 資料庫登陸密碼

Taiga-backend的配置

  • "API_BASE_PROTOCOL=http" 後端api使用的協議型別
  • "API_BASE_DOMAIN=taigabackend" 後端api對外的域名或者ip
  • "API_BASE_PORT=8000" 後端api的埠
  • "FRONT_BASE_PROTOCOL=http" 前端服務的協議型別
  • "FRONT_BASE_DOMAIN=taigafrontend" 前端服務的域名或者ip
  • "FRONT_BASE_PORT=80" 前端服務的埠
  • "MEDIA_URL=/media/" 後端儲存使用者檔案的uri或url
  • "STATIC_URL=/static/" 後端網頁靜態資源的uri或url
  • "EMAIL_HOST=smtp.domain.com" 後端郵件功能所使用的服務地址
  • "EMAIL_PORT=25" 後端郵件功能所使用的服務埠
  • "EMAIL_HOST_USER=yourmail@domain.com" 郵箱賬號
  • "EMAIL_HOST_PASSWORD=yourpassword" 郵箱密碼
  • "DEFAULT_FROM_EMAIL=yourmail@domain.com" 預設的發件人
  • "EMAIL_SUBJECT_PREFIX=taiga-noreplay" 郵件主題字首
  • "EMAIL_USE_TLS=False" ssl功能是否開啟,因為多數郵箱服務的ssl功能開啟複雜,這裡只做測試,所以這裡選擇了False。

Taiga-frontend的配置

  • "BASE_DOMAIN=taigabackend:8000" 後端api的地址
  • "BASE_PROTOCOL=http" 後端api使用的協議型別

其他配置檔案

這些變數均是從taiga的配置檔案中得到的,這裡為了方便部署所以單獨領出來。更多配置可以參考原始碼中的如下配置檔案

taiga-backend

  • taiga-back/settings/common.py 系統預設配置
  • taiga-back/settings/local.py 使用者自定義配置,如果修改預設配置,在這裡重新定義即可

taiga-frontend

  • taiga-front/conf/conf.json 如果修改預設配置,在這裡重新定義即可,記得備份。

其他

  • taiga-docker的前端是部署在nginx上的,可以配置nginx的配置。

本文轉自掘金-Taiga 容器部署

相關文章