This article describes how to move a Gitea instance from one docker container to another. I thought that simply copying the mounted volume directory would be sufficient, but apparently isn’t.
Gitea has a CLI that can export most of the data (excepting the projects).
Here are some articles that I read to understand how to do the transfer.
https://github.com/go-gitea/gitea/pull/12244 - PR and issue that introduced the 
dump-repo and restore-repo options.Using the above it’s possible to dump the contents of the repo and restore it into another Gitea instance. (It supposedly works for other Git repos too.)
Docker Containers
If you run Gitea in a docker container, then there are a few extra steps.
First, log in to the original docker container with 
docker exec -it <container name> /bin/shThis will give you a shell as root. But the gitea command line program refuses to run as root.
- su gitto become the git user.
- cd ~to go to the home directory, which is the- /data/gitdirectory (which should be mounted to the host).
- Run the the gitea command line from inside the original container to export the data:
gitea dump-repo --clone_addr <https address of repo> --git_service giteaThis should create a directory called 
data under the /data/git directory, which contains the exported items as a set of YAML files. This directory should be visible on the host, as Gitea mounts the /data directory.In the docker container of the new instance of Gitea, follow the above steps, except use the following command line to import the items.
gitea restore-repo --repo_name <repo name> --repo_dir pwd/data --owner_name <gitea account name>The owner must already be defined in Gitea, but the repo will be created by 
restore-repo.What about docker export ?
Exporting the docker container (e.g. 
docker export) would also work, but I wanted to upgrade the version of Gitea, and, as mentioned above, simply copying the mounted volume directory didn’t work.
