TeamCity 之旅1

简介: TeamCity提供一系列特性可以让团队快速实现持续集成:IDE工具集成、各种消息通知、各种报表、项目的管理、分布式的编译等等,所有的这些,都是让你的团队快速享有持续集成带来的效率提升、高质量的软件保障。 使用 TeamCity,你能够在几分钟之内为你的项目配置一个构建服务器,它内建了持续单元测试,代码质量分析和早期的构建问题分析报告,你甚至可以在IDE进行。 TeamCity 提供平滑的学习曲线,你可以逐步的学习经它的高级特性和功能,你很快就能加强你发布管理实践。 本次发布,在可用性作了大量的改进,更新的IDE 插件支持 CVS和SVN,另外还包括一些之前版本不具备的企业级的特性。

TeamCity提供一系列特性可以让团队快速实现持续集成:IDE工具集成、各种消息通知、各种报表、项目的管理、分布式的编译等等,所有的这些,都是让你的团队快速享有持续集成带来的效率提升、高质量的软件保障。 使用 TeamCity,你能够在几分钟之内为你的项目配置一个构建服务器,它内建了持续单元测试,代码质量分析和早期的构建问题分析报告,你甚至可以在IDE进行。 TeamCity 提供平滑的学习曲线,你可以逐步的学习经它的高级特性和功能,你很快就能加强你发布管理实践。 本次发布,在可用性作了大量的改进,更新的IDE 插件支持 CVS和SVN,另外还包括一些之前版本不具备的企业级的特性。
image.png

安装
用Docker Image 安装 Server端:

docker run -it --name teamcity-server-instance  \
-v /opt/teamcity/data:/data/teamcity_server/datadir \
-v /opt/teamcity/logs:/opt/teamcity/logs  \
-p 8111:8111 \
jetbrains/teamcity-server

出现此提示时表示初步安装成功,接下来进入后台进行配置

Startup confirmation is required. Open TeamCity web page in the browser. Server is running at http://localhost:8111

数据库选择:

支持 Mysql, Oracle, PostgreSQL,HSQLDB,这里选用的是默认数据.

初次进入会提示创建项目,后续需要主动创建项目.这里提供了简便的用户密码方式授权,同时也提供了 Oauth 方式

image.png

image.png

根据提示选择 Proceed,此步骤会根据工程目录自动选择可能的Build Steps

image.png

首次接触误以为 直接run可以了。会提示没有可用的 agent.

image.png

安装 Agent,每一台要发布的机器都要安装 agent,有没有批量安装方法呢?用 K8S 环境下如何部署?:

   docker run -p 9090:9090 -it -e SERVER_URL="http://120.27.8.120:8111"  \

-v /data/teamcity_agent/conf:/data/teamcity_agent/conf \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/buildagent/work:/opt/buildagent/work \
-v /opt/buildagent/temp:/opt/buildagent/temp \
-v /opt/buildagent/tools:/opt/buildagent/tools \
-v /opt/buildagent/plugins:/opt/buildagent/plugins \
-v /opt/buildagent/system:/opt/buildagent/system \
jetbrains/teamcity-agent

注意::

   Image 安装要注意制定本地目录,否则 Agent 虽然能 connected但是 build的时候找不到。为了省去不必要的麻烦端口号都有点 9090。

image.png

angent安装出现 authorization token 时,复制 token回到 web 管理界面进行 agent 授权。

image.png
image.png

授权完会进入自动build

image.png
image.png

到目前为止 整个 TeamCity 就安装完了:

上面用到了 Token 授权 Server 访问 Agent,在安装 Server 时也曾出现过用 Token 代替用户和密码登陆,后续再要求创建管理员账号。

配置自动化发布

设置 Build Steps ,此例子总共6 步:

build, login, push, stop rm, delete image, run.
Login主要是为了登陆阿里的容器仓库,实际上在非容器化部署的 agent 中只执行一次即可,主机会记住登陆信息。

image.png

Buid:

创建 Build,比较简单 Runner Type 选择 Docker 即可。 给 Step 命名为 Build(随便命名可读即可),Docker command 选择 build,Path to file默认 TeamCity 会读取根目录下的Dockerfile,也可以指定其他目录的 Dockerfile。Image name:tag 根基实际情况指定。这里是用的阿里的registry.cn-beijing.aliyuncs.com/langzhe/ssj

image.png

Login:

授权允许访问仓库,Docker command 中没有 login,这里选择 other,在 Command name 中输入 login.
在 Additional arguments 中数据用户名密码和地址。

image.png

Push:

把镜像推到阿里镜像仓库,这个配置比较简单

image.png

stop rm: 测试的时候发现经常 Image 不更新,这里在 run 时,先把容器停掉并删除,同时把 Image 删除,run 的时候用的 latest.需要在主机上执行命令Runner Type要选择 CommandLine ,Run:选择 Custom script并输入以下脚本:

docker stop `docker images |grep ssj |awk '{print $3}'`

image.png

删除 Image,与第四步类似,脚本如下:

docker rmi `docker images |grep ssj |awk '{print $3}'`

image.png

第六步 run,与第二步类似:

DockerComand选择 Other,在 Command name 中输入 run.

Additional arguments for the command:输入-p 80:80 -d registry.cn-beijing.aliyuncs.com/langzhe/ssj

image.png

然后,执行 Run,这个过程需要反复调试。可以禁用一些 Steps.

最后一定要设置 Trigers

image.png

image.png

目录
相关文章
|
2月前
|
人工智能 Java 开发工具
阿里开源 AI 代码审查神器 OpenCodeReview:让 AI 真正读懂你的 Git Diff
阿里开源的 OpenCodeReview 是一款专为 AI 代码审查设计的 CLI Agent 工具。它通过确定性工程(文件筛选、分组、规则匹配、敏感过滤)与智能 Agent 协同,解决传统大模型直接 Review Git Diff 时的上下文缺失、误判、Token 浪费等问题。支持多语言、自定义规则、CI 集成及 JSON 输出,兼顾精度与生产可用性。(239字)
1200 0
|
Java 数据库连接 Go
如何在Spring Boot应用中使用Nacos实现动态更新数据源
如何在Spring Boot应用中使用Nacos实现动态更新数据源
1499 0
|
Java
Invalid or corrupt jarfile坑爹问题解决
打包一个可以直接利用java -jar ***就可以运行的jar包步骤:jar cvfm lottery.jar MANIFEST.MF jdbc.properties com如果出现:java.io.
38311 0
|
7月前
|
人工智能 监控 JavaScript
Claude Code 必装插件:claude-hud 让你的 AI 编程效率翻倍
![封面图](https://oscimg.oschina.net/oscnet/up45b3d45a4d73cfc21ab909d1632066be5b9.png) JeecgBoot AI专题研究 Claude Code 状态监控插件 claudehud 深度体验与实战指南 你真的了解 Cla
4737 1
Claude Code 必装插件:claude-hud 让你的 AI 编程效率翻倍
|
JSON 自然语言处理 API
闲鱼商品详情API响应数据python解析
闲鱼商品详情API(goodfish.item_get)通过商品ID获取标题、价格、描述、图片等信息,支持Python等多语言调用。本文提供Python请求示例,包含请求构造与数据处理方法。
|
定位技术 API Android开发
怎么把定位改成你想要的位置?
GPS定位修改技术指南 一、定位修改技术原理
|
JSON Linux 虚拟化
"揭秘!如何用Clash代理为Docker穿上‘隐身衣’,轻松绕过限制,实现镜像秒速拉取?"
【8月更文挑战第20天】无论是开发环境还是生产环境,这一技巧都将大大提升你的工作效率和稳定性。
8765 0
|
Prometheus Cloud Native Java
OpenTelemetry: 经得起考验的工具
OpenTelemetry: 经得起考验的工具
3032 2
|
应用服务中间件 nginx Docker
Docker中报错 Error response from daemon: Conflict. The container name “/nginx01“ is already in use
在尝试运行 `docker run -d --name nginx01 -p 3344:80 nginx` 时遇到错误。问题源于已有名为 nginx01 的容器未正确终止,造成命名冲突。解决方法:首先使用 `docker ps -a` 查看所有容器,然后删除现有 nginx01 容器,执行 `docker rm <container_id>`(替换 `<container_id>` 为实际容器ID),最后再运行 `docker run` 命令即可。
2056 0