TestArchive/README.md
2025-03-31 08:52:41 +00:00

3.9 KiB

Esempio di docker-compose.yml

services:
  gitea-db:
    container_name: gitea-db
    image: mcr.microsoft.com/mssql/server:2019-latest
    environment:
      SA_PASSWORD: System128!
      ACCEPT_EULA: Y
      MSSQL_MEMORY_LIMIT_MB: 2048
      TZ: Europe/Rome
    volumes:
      - gitea-db-vol:/var/opt/mssql
    networks:
      - gitea-net
    restart: unless-stopped
    ports:
      - 41433:1433
      
  gitea:
    image: docker.gitea.com/gitea:1.23.5
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mssql
      - GITEA__database__HOST=gitea-db
      - GITEA__database__NAME=Gitea
      - GITEA__database__USER=sa
      - GITEA__database__PASSWD=System128!
    restart: always
    networks:
      - gitea-net
    volumes:
      - gitea-data-vol:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 3000:3000
      - 3022:22
    depends_on:
      - gitea-db

volumes:
  gitea-db-vol:
    name: gitea-db-vol
  gitea-data-vol:
    name: gitea-data-vol

networks:
  gitea-net:
    name: gitea-net

Backup Gitea hostato su Docker

  1. Creare una cartella temporanea tmp all'interno del volume docker gitea-data-vol
cd /var/lib/docker/volumes/gitea-data-vol/_data/
mkdir tmp
chmod 777 tmp
  1. Lanciare il comando dump all'interno del container gitea
docker exec -u git -it -w /data/tmp gitea bash -c '/usr/local/bin/gitea dump -c /data/gitea/conf/app.ini'

Questo produrrà un file di backup gitea-dump-xxxxxxxxxx.zip nella cartella tmp appena creata (/data/tmp del container, ovvero /var/lib/docker/volumes/gitea-data-vol/_data/tmp del host).

Spostare questo file su un server sicuro.

Sarà necessario anche un backup del database Gitea.

Restore Gitea hostato su Docker

Questa procedura serve a ripristinare la configurazione e le repository Gitea partendo da un backup nel formato gitea-dump-xxxxxxxxxx.zip

Si prende per scontato che vi sia già in esecuzione uno stack simile a quello prodotto dal docker-compose.yml

  1. Creare una cartella temporanea tmp all'interno del volume docker gitea-data-vol e spostarvi il file gitea-dump-xxxxxxxxxx.zip
cd /var/lib/docker/volumes/gitea-data-vol/_data/
mkdir tmp
mv /path/to/gitea-dump-xxxxxxxxxx.zip tmp/
chmod 777 -R tmp
  1. Aprire la console all'interno del container Gitea
docker exec --user git -it gitea bash
  1. Scompattare l'archivio gitea-dump-xxxxxxxxxx.zip
cd /data/tmp
unzip gitea-dump-xxxxxxxxxx.zip -d dump
  1. Sovrascrivere i file dell'installazione provvisoria con quelli del backup
#mv dump/data/* /data/gitea/
cp -r dump/data/* /data/gitea/

#mv dump/repos/* /data/git/repositories/
cp -r dump/repos/* /data/git/repositories/

chown -R git:git /data
/usr/local/bin/gitea -c '/data/gitea/conf/app.ini' admin regenerate hooks
  1. Impostare l'utente git come proprietario della cartella /data
chown -R git:git /data
  1. (facoltativo) Ripristinare gli Hook
/usr/local/bin/gitea -c '/data/gitea/conf/app.ini' admin regenerate hooks

NOTA: se aprendo una repository dalla GUI di Gitea si ottiene l'errore
The Git data underlying this repository cannot be read. Contact the administrator of this instance or delete this repository.
è possibile che le repository nella cartella /data/git/repositories/, ovvero /var/lib/docker/volumes/gitea-data-vol/_data/git/repositories/, siano nella posizione sbagliata, ad esempio al di fuori della cartella dell'organizzazione.

ESEMPIO 1
Organizzazione: Logika
Repository: ModalitaAssistenza
Percorso: /data/git/repositories/Logika/ModalitaAssistenza.git

ESEMPIO 2
Utente: alberto.morettin
Repository: TempRepo
Percorso: /data/git/repositories/alberto.morettin/TempRepo.git