gitea 升级
为什么升
gitea是一个源码管理软件,了解到这个软件时,版本是1.18.5,不具备cicd的能力,需要集成drone实现cicd的功能。今天突然想了解重温drone的功能,重新查询资料,发现官网已说明可以支持cicd了,从1.19开始发布了Gitea Actions用于支持CICD。而在1.21.0以后已经默认集成了Gitea Actions。 参考: Gitea Actions 快速入门
前提技能
docker-compose
操作过程
目前的安装手册只有docker-compose方式。跟原来纯docker的方式有些区别,何况原来的docker是在群辉管理界面配置。
过程也非常简单,参照普通版本的安装过程即可。
在执行前,注意备份数据。 我把原有目录(gitea)复制了一份到(gitea-upgrade)。
在gitea-upgrade中,新建docker-compose.yml,复制教程的配置文件,甚至删除了networks、environment。修改volumes中的gitea目录为data,删除timezone、localtime。
完成后,在当前目录执行docker-compose up -d
,后台会有一段升级的过程,稍慢。使用docker-compose ps
查看state处于up。
cd gitea-upgrade
vi docker-compose.yml
docker-compose up -d
docker-compose.yml :
version: "3"
services:
server:
image: gitea/gitea:1.21.1
container_name: gitea
restart: always
volumes:
- ./data:/data
ports:
- "3000:3000"
- "222:22"
坑
注意 gitea/gitea:1.21.1与gitea/gitea:1.21.1-rootless的差异。 首次操作时,用了rootless的docker-compose.yml配置,应用是启动了,但是提示重新初始化,相当于没有迁移过来。 比对数据文件发现当前版本的数据是存于data目录,映射到/data/里面分别有git、gitea、ssh3个目录,而rootless版本的目录有config和data两个,分别映射到/etc/gitea、/var/lib/gitea。两个目录结构无法对应。 再检查发些当前版本还有一个默认环境参数GITEA_CUSTOM=/data/gitea。因此用通用版本再试了一下,升级成功。
参考
文献
gitea用docker安装说明
附件
- 原版示例docker-compose.yml
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.21.1
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA_CUSTOM=/data/gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"