【Teamcity 安装及入门使用】

news2024/11/15 16:50:28

Teamcity 安装及入门使用

  • 前言
  • 安装
    • 无Mysql版本
    • 有Mysql版本
  • 启动
  • 创建超管用户账户和密码
  • 忘记密码
  • 结尾语

前言

前不久,teamcity更新了2023.05.2版本,我对teamcity也有一段时间的学习了,所以想写一篇博客来记录一下这段时间的学习过程。

teamcity 的优势很多,我个人比较喜欢的是对IDEA的支持,程序员能在IDEA里直接部署应用和观察部署日志,不用在浏览器和IDE之间来回切换了,提高了生产效率

安装

安装teamcity有很多种方式,因为没有搭k8s,所以采用docker compose的方式安装,teamcity数据库支持Mysql和PostgreSQL,个人还是习惯Mysql,所以用Mysql

无Mysql版本

如果你没有Mysql,则需要在Docker启动时,先启动一个Mysql,Docker-Compose.yaml文件如下


```yaml
version: '2'
services:
  mysql:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: teamcity
      MYSQL_DATABASE: teamcity
      MYSQL_USER: teamcity
      MYSQL_PASSWORD: teamcity
    volumes:
      - ./mysql/data:/var/lib/mysql
  teamcity:
     image: jetbrains/teamcity-server:2023.05.2
     container_name: jetbrains-teamcity
     user: root
     volumes:
       - ./teamcity_server/data:/data/teamcity_server/datadir
       - ./teamcity_server/logs:/opt/teamcity/logs
     environment:
       - SERVER_URL=http:\/\/teamcity:8111
      #  - VIRTUAL_HOST=teamcity.yourdomain.com
      #  - LETSENCRYPT_HOST=teamcity.yourdomain.com
      #  - LETSENCRYPT_EMAIL=your.email@yourdomain.com
     ports:
       - "8111:8111"
     depends_on:
       - mysql 
  teamcity_agent1:
    image: jetbrains/teamcity-agent:2023.05.2
    container_name: teamcity-agent-1
    user: root
    volumes:
      - ./agent1/conf:/data/teamcity_agent/conf
      - ./agent1/volumes:/var/lib/docker
    environment:
      - SERVER_URL=http://teamcity:8111
      - DOCKER_IN_DOCKER=start
    ports:
      - "9090:9090"
    privileged: true
    depends_on:
      - teamcity
volumes:
  dockervolumes:

有Mysql版本

如果你有Mysql,则用如下Docker-Compose.yaml即可

version: '2'
services:
  teamcity:
     image: jetbrains/teamcity-server:2023.05.2
     container_name: jetbrains-teamcity
     user: root
     volumes:
       - ./teamcity_server/data:/data/teamcity_server/datadir
       - ./teamcity_server/logs:/opt/teamcity/logs
     environment:
       - SERVER_URL=http:\/\/teamcity:8111
      #  - VIRTUAL_HOST=teamcity.yourdomain.com
      #  - LETSENCRYPT_HOST=teamcity.yourdomain.com
      #  - LETSENCRYPT_EMAIL=your.email@yourdomain.com
     ports:
       - "8111:8111"
  teamcity_agent1:
    image: jetbrains/teamcity-agent:2023.05.2
    container_name: teamcity-agent-1
    user: root
    volumes:
      - ./agent1/conf:/data/teamcity_agent/conf
      - ./agent1/volumes:/var/lib/docker
    environment:
      - SERVER_URL=http://teamcity:8111
      - DOCKER_IN_DOCKER=start
    ports:
      - "9090:9090"
    privileged: true
volumes:
  dockervolumes:

启动

Teamcity默认端口是8111,Teamcity Agent默认端口是9090,我们这边打开Teamcity,输入服务器地址和端口号即可访问,如http://127.0.0.1:8111

在这里插入图片描述
因为我已经登录过了,这是重启后的界面,点击Proceed
在这里插入图片描述

上图是在初始化中,耐心等待1分钟左右即可

选择数据库,因为我们启动的是Mysql,所以这里选择Mysql
在这里插入图片描述

如果使用的是我提供的带Mysql的docker-compose文件,输入以下信息

Database host:本机IP:3306
Database name:teamcity
User name:teamcity
Password:teamcity

如果用的是您自己的数据库,输入对应信息即可
在这里插入图片描述

如果报错提示:No suitable JDBC driver found for database type: MySQL

这是因为没有数据库连接驱动,点击Download JDBC driver
在这里插入图片描述

连接成功后,teamcity会初始化服务组件
在这里插入图片描述

初始化完成后,有一份许可协议,右侧浏览器滚动条拉到底,勾选 Accept license agreement 点击Continue
在这里插入图片描述

创建超管用户账户和密码

这边输入账号密码即可
在这里插入图片描述

忘记密码

如果某天创建的密码忘记了,可在日志中找到超管Token,用Token直接登录就行

保证容器运行的情况下输入

docker logs jetbrains-teamcity | grep “token”

会得到如下输出:
在这里插入图片描述

[TeamCity] Super user authentication token: 2060541101255140985 (use
empty username with the token as the password to access the server)

其中2060541101255140985就是超管token,这个token不会变,重启后也不会变,安装后就不会变了,可以搜索日志得到,再用token填到Password处,直接登录,不需要输入Username

登录后再修改
在这里插入图片描述

点击右上角Administration,找到左边User Management里的Users,找到自己的用户名,图中标记3的地方
在这里插入图片描述

输入密码再保存就好了
在这里插入图片描述

结尾语

下篇准备写teamcity的用法,配置应用和打包,webhook等

因为teamcity不支持钉钉、企业微信等通知,所以得自己写插件,我之前写过一个,有机会分享给大家,欢迎给我留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/901380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这是我的纪念日

我的1460天 写这篇文章,是为了纪念自己这一千多个日日夜夜,我的热爱总算有了回报。 每次看到有小伙伴点赞,评论的时候,我都很开心,我知道自己的选择是正确的,我喜欢分享自己的所见所学,我也很…

7-3 数字加密

分数 15 全屏浏览题目 切换布局 作者 陈建海 单位 浙江大学 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字…

vue-element-admin新增view后点击侧边栏加载慢问题

按照官网文档新增view 新增之后点击显示一直在加载中 解决方案:删除script中这段代码

【自创】关于前端js的“嵌套地狱”的遍历算法

欢迎大家关注我的CSDN账号 欢迎大家关注我的哔哩哔哩账号:卢淼儿的个人空间-卢淼儿个人主页-哔哩哔哩视频 此saas系统我会在9月2号之前,在csdn及哔哩哔哩上发布成套系列教学视频。敬请期待!!! 首先看图 这是我们要解…

<数据结构与算法>二叉树堆的实现

目录 前言 一、树的概念及结构 1 树的概念 2 树的相关概念 二、二叉树的概念及结构 1.二叉树的概念 2. 特殊的二叉树 3. 二叉树的性质 4.二叉树的存储结构 三、二叉树的顺序结构及实现 1.堆的性质 2.堆的插入 3.堆的实现 堆的结构体 HeapInit 初始化 HeapPush 插入 HeapPop 删…

攻防世界-warmup

原题解题思路 只有一张图片,就查看源代码,有一个source.php。 查看source.php,白名单中还有一个hint.php。 hint.php告诉我们flag的位置ffffllllaaaagggg 但是直接跳转是没用的,构造payload。 http://61.147.171.105:55725/sourc…

Android12之com.android.media.swcodec无法生成apex问题(一百六十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

excel中有哪些通配符、excel配置问题,数学函数篇1之sum系列

学习excel前需要明确的是事:   在学习excel函数之前,大家需要明确一件事,excel现在设计到了一些新函数,这些新函数只能存在于office365、office2019及更 新版本之中,所以建议大家在学习时安装较新的版本,…

Qt与电脑管家3

1.ui页面设计技巧 最外面的widget: 上下左右的margin都置相同的值 这里有4个widget,做好一个后,后面3个可以直接复制.ui文件,然后进行微调即可。 2.现阶段实现的效果: 3.程序结构: btn1--->btn btn1---…

基于51单片机直流电机转速数码管显示控制系统

一、系统方案 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等…

python、numpy、pytorch中的浅拷贝和深拷贝

1、Python中的浅拷贝和深拷贝 import copya [1, 2, 3, 4, [11, 22, 33, [111, 222]]] b a c a.copy() d copy.deepcopy(a)print(before modify\r\n a\r\n, a, \r\n,b a\r\n, b, \r\n,c a.copy()\r\n, c, \r\n,d copy.deepcopy(a)\r\n, d, \r\n)before modify a [1, 2…

机器人制作开源方案 | 送餐机器人

作者:赖志彩、曹柳洲、王恩开、李雪儿、杨玉凯 单位:华北科技学院 指导老师:张伟杰、罗建国 一、作品简介 1. 场景调研 1.1项目目的 近年来,全国多地疫情频发,且其传染性极高,食品接触是传播途径之一。…

Redis之List类型解读

目录 List简介 数据结构 常见命令 概述 ​LPUSH key value1 [value2] ​ LPUSHX key value LINDEX key index LLEN key LPOP key LRANGE key start stop List简介 列表list是一个单键多值的 Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加…

k8s 常见面试题

前段时间在这个视频中分享了 https://github.com/bregman-arie/devops-exercises 这个知识仓库。 这次继续分享里面的内容,本次主要以 k8s 相关的问题为主。 k8s 是什么,为什么企业选择使用它 k8s 是一个开源应用,给用户提供了管理、部署、扩…

Python将网络文件下载到本地

Python将网络文件下载到本地 前言相关介绍Python将网络文件下载到本地 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Python日常小操作专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看基于DETR的人脸伪…

Kubernetes 安全机制 认证 授权 准入控制

客户端应用若想发送请求到 apiserver 操作管理K8S资源对象,需要先通过三关安全验证 认证(Authentication)鉴权(Authorization)准入控制(Admission Control) Kubernetes 作为一个分布式集群的管理…

FreeCAD的傻瓜式初级使用教程

起因:自己想DIY一套线性手刹和序列档,以便和我之前的freejoy控制器相连接应用,需要自己制图和在某宝找代加工的商家,但我又不想安装体积巨大的AutoCAD,所以找了以下开源、免费的解决方案,所以就有了这篇文章…

这是真的“技术驱动”的公司吗?

“ 软件交付团队的DevOps能力,恰恰是技术能力的最好体现。” 01 — “我们是技术驱动的公司” 跟我们合作的软件供应商,每次发生软件变更或升级就一地鸡毛,而且经过屡次沟通,都没有什么本质改善。 当我们跟他们的高层投诉时&#…

JVM面试题-1

1、什么是JVM内存结构? jvm将虚拟机分为5大区域,程序计数器、虚拟机栈、本地方法栈、java堆、方法区; 程序计数器:线程私有的,是一块很小的内存空间,作为当前线程的行号指示器,用于记录当前虚拟…

数据结构:队列Queue详解

文章目录 一、队列的概念和特点二、队列的使用三、队列的简单实现四、循环队列 一、队列的概念和特点 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。进行插入操作的一端称为队尾,删除操作的一端称队头。 入队列&#xff…