Taiga 容器部署

简介: taiga 组件介绍 Taiga-front 由angularjs和coffeescript搭建的一个前端,可以运行在nginx中的静态网站。taiga/taiga-front taiga/taiga-front-dist 是taiga-front编译完版本,如果只是部署,可以使用这个版本。
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 容器部署
相关文章
|
3月前
|
Java 持续交付 Docker
微服务框架(二十一)Piplin 持续部署 Docker 容器
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为使用Piplin 持续部署 Docker 容器
|
18天前
|
关系型数据库 MySQL Nacos
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
42 1
|
24天前
|
运维 监控 Devops
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业的IT基础设施和软件交付模式正经历着深刻的变革。传统的运维方式已难以满足快速迭代、灵活扩展的现代业务需求。本文将探讨如何通过容器技术实现高效的自动化运维体系,重点分析持续集成(CI)与持续部署(CD)的实践方法及其对企业运维效率的影响。通过引入微服务架构、容器编排、DevOps文化等概念,我们旨在为读者提供一套全面的自动化运维解决方案,以支持业务的敏捷性和可扩展性。
|
1月前
|
Shell Docker 容器
Docker的常用命令:加速你的容器化开发与部署
Docker的常用命令:加速你的容器化开发与部署
55 0
|
2月前
|
Java 关系型数据库 MySQL
docker 部署springboot项目,连接mysql容器
docker 部署springboot项目,连接mysql容器
77 0
|
2月前
|
NoSQL Redis Docker
深入浅出:使用Docker容器化改进Python应用部署
在快速演进的软件开发领域,持续集成和持续部署(CI/CD)已成为加速产品上市的关键。本文将探索如何利用Docker,一种流行的容器化技术,来容器化Python应用,实现高效、可靠的部署流程。我们将从Docker的基本概念入手,详细讨论如何创建轻量级、可移植的Python应用容器,并展示如何通过Docker Compose管理多容器应用。此外,文章还将介绍使用Docker的最佳实践,帮助开发者避免常见陷阱,优化部署策略。无论是初学者还是有经验的开发人员,本文都将提供有价值的见解,助力读者在自己的项目中实现容器化部署的转型。
|
2月前
|
运维 Java 开发者
深入浅出:使用Docker容器化改善Java应用的部署与运维
在当今快速迭代的软件开发周期中,确保应用的一致性、可移植性与易于管理成为了开发与运维团队面临的重大挑战。本文旨在介绍如何通过Docker容器技术,有效地解决这些问题,特别是针对Java应用。我们将从Docker的基本概念出发,逐步深入到实际操作,展示如何将传统的Java应用容器化,以及这一过程如何帮助简化部署流程、提高应用的可靠性和可伸缩性。不同于常规的技术文章,本文试图以一种更加易于理解和实践的方式,让读者能够快速掌握容器化技术,并将其应用于日常的开发与运维工作中。
89 0
|
2月前
|
运维 Java Linux
深入解析:使用Docker容器化技术提升Java应用的部署效率
在快速迭代的软件开发周期中,如何保证应用的快速、一致和可靠部署成为了开发团队需要面对的重大挑战。本文将探讨如何利用Docker容器化技术,结合Java应用,实现高效、一致的部署流程。我们将从Docker的基本概念出发,详细介绍将Java应用容器化的步骤,包括创建Dockerfile、构建镜像以及运行容器等关键环节,并通过示例代码加以说明。此外,本文还将讨论在使用Docker部署Java应用时可能遇到的常见问题及其解决策略,旨在为读者提供一种提升部署效率、优化开发流程的有效方法。
300 2
|
2月前
|
Java 持续交付 虚拟化
深入浅出:使用Docker容器化改善Java应用的开发与部署流程
在快速迭代与持续集成的软件开发周期中,确保应用在各种环境中一致运行是一个挑战。本文介绍了如何利用Docker容器技术,来容器化Java应用,以实现环境一致性、简化配置和加速部署过程。我们将从Docker的基础知识开始,探讨其与传统虚拟机的区别,进而深入到如何创建Dockerfile,构建镜像,以及运行和管理容器。此外,文章还将涵盖使用Docker Compose来管理多容器应用的策略,以及如何利用容器化改善CI/CD流程。通过本文,读者将获得关于如何高效地利用Docker改善Java应用开发与部署流程的实践指导。
158 1
|
2月前
|
持续交付 开发者 Docker
深入浅出:使用Docker容器化改进Python应用部署
在当今快速变化的软件开发领域,开发者面临着各种挑战,其中之一就是如何确保应用在不同环境中都能稳定运行。本文将介绍Docker这一容器化技术如何为Python应用提供一个一致的运行环境,简化部署过程,并提高开发效率和应用的可移植性。我们将从Docker的基本概念讲起,通过实际案例演示如何将一个简单的Python应用容器化,最后探讨容器化对于持续集成/持续部署(CI/CD)流程的积极影响。
70 0