侧边栏壁纸
  • 累计撰写 81 篇文章
  • 累计创建 41 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Gitea 群辉 Docker 容器升级版本

勤为径苦作舟
2024-07-21 / 0 评论 / 0 点赞 / 20 阅读 / 4790 字 / 正在检测是否收录...

简介

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
  • dhub.kubesre.xyzDocker 镜像前缀。
  • 网络my是我之前创建用于容器互通的网络。
# 停止删除旧容器、镜像
$ docker stop gitea
$ docker rm gitea
$ docker rmi gitea/gitea

# 获取并启动新容器,之后更新也可以用这个❗❗ 确保已将数据卷到 Docker 容器外部的某个位置 ❗❗
$ docker-compose -f gitea.yml pull
$ docker-compose -f gitea.yml up -d

参考

0

评论区