简介
1.21.5 升级到 1.22.1。
步骤
备份
# 进入 gitea 容器
$ docker exec -it gitea bash
# 搜索配置文件
$ find / -name app.ini
/etc/templates/app.ini
/data/gitea/conf/app.ini
# 查看配置文件,记下 RUN_USER 的值
$ vim /data/gitea/conf/app.ini
# 退出容器后备份
$ docker exec -u git -it -w /tmp $(docker ps -qf 'name=^gitea$') bash -c '/usr/local/bin/gitea dump -c /data/gitea/conf/app.ini'
……
2024/07/20 18:20:18 cmd/dump.go:430:runDump() [I] Finish dumping in file gitea-dump-1721499609.zip
-u git
:即 app.ini 中的RUN_USER
。-w /tmp
:备份文件临时目录。-qf 'name=^gitea$'
:容器名为gitea
。-c /data/gitea/conf/app.ini
:配置文件路径。
# 导出容器中的备份文件
$ docker cp gitea:/tmp/gitea-dump-1721499609.zip .
# 导出容器中的配置文件
$ docker cp gitea:/data/gitea/conf/app.ini .
# 备份数据库
$ mysqldump -ugitea -p --database gitea > gitea-db.sql
群辉安装 Python、setuptool、pip(可选)
使用python3
查看是否已安装 Python,如果未安装要先安装 Python3 的套件。
# 在 Pypi 搜索 setuptools 并复制 Source Distribution 地址
$ wget --no-check-certificate https://files.pythonhosted.org/packages/b2/9b/c154d7694227ff8f5ee5bdff2f8cf8a529ba8f53e80806dd984737c59b19/setuptools-71.0.4.tar.gz
# 解压缩并编译安装 setuptool
$ tar zxvf setuptools-71.0.4.tar.gz
$ cd setuptools-71.0.4
$ python3 setup.py build
$ python3 setup.py install
# 脚本安装 pip
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py
# 查看 pip 版本
$ pip3 -V
pip 24.1.2 from /usr/lib/python3.8/site-packages/pip (python 3.8)
# pip 换源
$ pip3 config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple
Writing to /root/.config/pip/pip.conf
# 安装 pipx 并修复环境变量(可选)
$ pip3 install pipx
$ pipx ensurepath
Success! Added /root/.local/bin to the PATH environment variable.
$ source ~/.bashrc
升级
# 尝试 Watchtower 升级无效
$ docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
-c --run-once \
gitea
time="2024-07-20T11:08:26Z" level=info msg="Watchtower 1.7.1"
time="2024-07-20T11:08:26Z" level=info msg="Using no notifications"
time="2024-07-20T11:08:26Z" level=info msg="Only checking containers which name matches \"gitea\""
time="2024-07-20T11:08:26Z" level=info msg="Running a one time update."
time="2024-07-20T11:11:13Z" level=info msg="Session done" Failed=0 Scanned=1 Updated=0 notify=no
time="2024-07-20T11:11:13Z" level=info msg="Waiting for the notification goroutine to finish" notify=no
# 查看容器命令(也可以在 DSM 中查看)
$ pipx install runlike
$ runlike -p gitea
docker run --name=gitea \
--hostname=gitea \
--mac-address=xxx \
--volume=/volume1/docker/gitea:/data:rw \
--network=bridge \
-p 8322:22 \
-p 8300:3000 \
--restart=always \
--log-driver=db \
--runtime=runc \
--detach=true \
-t \
gitea/gitea:latest \
/bin/s6-svscan /etc/s6
新建 Docker Compose 文件 gitea.yml:
version: "3"
networks:
gitea:
external: false
services:
server:
image: dhub.kubesre.xyz/gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=ip_or_domain:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=xxx
restart: always
networks:
- my
volumes:
- /volume1/docker/gitea:/data
ports:
- "8300:3000"
- "8322:22"
networks:
my:
external: true
# 停止删除旧容器、镜像
$ docker stop gitea
$ docker rm gitea
$ docker rmi gitea/gitea
# 获取并启动新容器,之后更新也可以用这个❗❗ 确保已将数据卷到 Docker 容器外部的某个位置 ❗❗
$ docker-compose -f gitea.yml pull
$ docker-compose -f gitea.yml up -d
评论区