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不支持钉钉、企业微信等通知,所以得自己写插件,我之前写过一个,有机会分享给大家,欢迎给我留言