version: '3.9' networks: default: services: gitea: image: gitea/gitea:${GITEA_VERSION:-1.16} restart: unless-stopped environment: # https://docs.gitea.io/en-us/install-with-docker/#environments-variables - APP_NAME="Gitea" - USER_UID=1000 - USER_GID=1000 - GITEA__server__DOMAIN=$app_fqdn - GITEA__server__SSH_DOMAIN=$app_fqdn - GITEA__server__ROOT_URL=https://$app_fqdn labels: restic-compose-backup.volumes: true restic-compose-backup.volumes.include: "data_repos,data_ssh,data_var" networks: default: volumes: # V2 Multi - data_var:/data/gitea:rw - data_repos:/data/git:rw - data_ssh:/data/ssh:rw volumes: data_repos: driver: local driver_opts: type: none o: bind device: $app_dir_data/git data_ssh: driver: local driver_opts: type: none o: bind device: $app_dir_data/ssh data_var: driver: local driver_opts: type: none o: bind device: $app_dir_data/gitea # V1 mono #- data_gitea:/data/gitea #- type: volume # source: data_gitea # target: /data/gitea # #bind: # # create_host_path: true #- type: volume # source: data_var # target: /data/gitea #- type: volume # source: data_repos # target: /data/git #- type: volume # source: data_ssh # target: /data/ssh #- /etc/timezone:/etc/timezone:ro #- /etc/localtime:/etc/localtime:ro # Example: https://stackoverflow.com/questions/49950326/how-to-create-docker-volume-device-host-path # https://docs.docker.com/compose/compose-file/#volumes # #volumes: # data_repos: # data_ssh: # data_var: #data_gitea: # driver: local # driver_opts: # type: none # o: bind # device: $app_dir_data/data_gitea # Pre build cmd: All direcotries must exists for local volumes # yq -r '.volumes | keys[] as $key| "mkdir -p " + .[$key].driver_opts.device ' docker-compose.run.yml # # mkdir -p /home/jez/volumes/data/prj/mrjk/POC/paasify3/examples/ex2/gitea/data/data_gitea # yq -r '.volumes | keys[] as $key| "docker volume create -d " + .[$key].driver + " -o type=" + .[$key].driver_opts.o + " -o device=" + .[$key].driver_opts.device + " devbox_gitea_" + $key ' docker-compose.run.yml # => docker volume create -d local -o type=bind -o device=./data/var devbox_gitea_data_gitea # Broken # yq -r '.volumes | keys[] as $key| "docker volume create -d " + .[$key].driver + " -o type=" + .[$key].driver_opts.o + " -o device=" + .[$key].driver_opts.device + " " + $key ' docker-compose.run.yml # Volume prior init: # for x in $(yq -r '.volumes[] | if .driver == "local" then .driver_opts.device else "titi" end' docker-compose.run.yml ); do mkdir -p "$x" ; done # PREFIX=devbox_gitea for x in $(yq -r '.volumes[] | if .driver == "local" then .driver_opts.device else "titi" end' docker-compose.run.yml ); do mkdir -p "$x" ; done # # # # --mount 'type=volume,src=,dst=,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:,"volume-opt=o=addr=,vers=4,soft,timeo=180,bg,tcp,rw"' # # docker volume create -d local -o type=bind -o "device=$x" my-vol # docker volume create -d local -o type=bind -o "device=$x" my-vol