基于 docker-compose 的 gitea 创建+运行+备份全流程
0.此博客信息
创建时间: 2023-04-01 最新修改时间: 2023-04-01 官方参考文档:https://gitea.io/en-us/
1.docker-compose文件
注意,我这里挂载了tmp目录,用来备份的时候使用
version: "3" networks: gitea: external: false services: server: image: gitea/gitea:1.19.0 container_name: gitea environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=mysql - GITEA__database__HOST=db:3306 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea - TZ=Asia/Shanghai restart: always networks: - gitea volumes: - ./gitea:/data - ./gitea/tmp:/tmp ports: - "3000:3000" - "3422:22" depends_on: - db db: image: mysql:8 restart: always environment: - MYSQL_ROOT_PASSWORD=gitea - MYSQL_USER=gitea - MYSQL_PASSWORD=gitea - MYSQL_DATABASE=gitea - TZ=Asia/Shanghai networks: - gitea volumes: - ./mysql:/var/lib/mysql
2.运行后状态
我的目录如下
3.入一些测试数据
就是创建一些账号,然后添加一些组织和数据
4.进行备份
参考官方文档 把zip备份到tmp目录下 备份命令
docker exec -u git -it -w /tmp 094341c71e68 bash -c /usr/local/bin/gitea dump
5.进行数据还原
5.1只需要docker-compose.yml和gitea-dump-1680355388.zip就行
5.2 docker compose up -d 启动容器 进入gitea容器执行下面命令
# open bash session in container docker exec --user git -it 2a83b293548e bash # unzip your backup file within the container unzip gitea-dump-1610949662.zip cd gitea-dump-1610949662 # restore the gitea data mv data/* /data/gitea # restore the repositories itself mv repos/* /data/git/repositories/ # adjust file permissions chown -R git:git /data # Regenerate Git Hooks /usr/local/bin/gitea -c /data/gitea/conf/app.ini admin regenerate hooks
5.3 进入 mysql容器
mysql --default-character-set=utf8mb4 -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE <gitea-db.sql
5.4 进入 gitea界面 勾选下面3个选项就可以了 这个时候数据就恢复到之前的状态了