🐛 Fix DATABASE_DIR_SQLITE override; 📝 correct docker run example 🐛

DATABASE_DIR fix:
The previous override hardcoded $DATA_DIR/db/sqlite, ignoring
DATABASE_DIR_SQLITE when it was explicitly set via env var. Changed
to respect DATABASE_DIR_SQLITE and only fall back to $DATA_DIR/db/sqlite
when the env var is not provided.
README:
- docker run and compose examples updated to match actual working flags:
--cgroupns private, --tty, --cap-add CHOWN/SYS_TIME/SYS_ADMIN,
--hostname FQDN, --domainname, GITEA_PROTO, DATABASE_DIR_SQLITE
with a separate sqlite volume mount
- Removed non-functional vars from examples (CONTAINER_PROTOCOL,
CONTAINER_DEFAULT_DATABASE_TYPE, DATABASE_BASE_DIR, WEB_PORT)
- Added DATABASE_DIR_SQLITE to the database env var table
- rootfs/usr/local/etc/docker/init.d/08-gitea.sh: respect DATABASE_DIR_SQLITE env var
- README.md: fix docker run/compose examples, add DATABASE_DIR_SQLITE to table

README.md
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
This commit is contained in:
2026-06-05 13:41:26 -04:00
parent b276c3ee0b
commit 958439b9ee
2 changed files with 28 additions and 9 deletions
+26 -7
View File
@@ -10,14 +10,24 @@ A self-hosted Docker image for [Gitea](https://gitea.io) — a lightweight, fast
```shell ```shell
docker run -d \ docker run -d \
--restart always \
--privileged \
--name casjaysdevdocker-gitea-latest \ --name casjaysdevdocker-gitea-latest \
--hostname git \ --privileged \
--restart always \
--tty \
--cgroupns private \
--hostname git.example.com \
--domainname example.com \
--network bridge \
--cap-add CHOWN \
--cap-add SYS_TIME \
--cap-add SYS_ADMIN \
-e TZ=America/New_York \ -e TZ=America/New_York \
-e GITEA_SERVER=git.example.com \ -e HOSTNAME=git.example.com \
-e GITEA_PROTO=http \
-e DATABASE_DIR_SQLITE=/data/db/sqlite \
-v /srv/docker/gitea/data:/data:z \ -v /srv/docker/gitea/data:/data:z \
-v /srv/docker/gitea/config:/config:z \ -v /srv/docker/gitea/config:/config:z \
-v /srv/docker/databases/sqlite/gitea:/data/db/sqlite:z \
-p 80:80 \ -p 80:80 \
-p 22:22 \ -p 22:22 \
casjaysdevdocker/gitea:latest casjaysdevdocker/gitea:latest
@@ -30,16 +40,24 @@ services:
gitea: gitea:
image: casjaysdevdocker/gitea:latest image: casjaysdevdocker/gitea:latest
container_name: casjaysdevdocker-gitea-latest container_name: casjaysdevdocker-gitea-latest
hostname: git hostname: git.example.com
domainname: example.com
privileged: true privileged: true
tty: true
restart: always restart: always
cap_add:
- CHOWN
- SYS_TIME
- SYS_ADMIN
environment: environment:
- TZ=America/New_York - TZ=America/New_York
- GITEA_SERVER=git.example.com - HOSTNAME=git.example.com
- GITEA_PROTO=https - GITEA_PROTO=http
- DATABASE_DIR_SQLITE=/data/db/sqlite
volumes: volumes:
- /srv/docker/gitea/data:/data:z - /srv/docker/gitea/data:/data:z
- /srv/docker/gitea/config:/config:z - /srv/docker/gitea/config:/config:z
- /srv/docker/databases/sqlite/gitea:/data/db/sqlite:z
ports: ports:
- 80:80 - 80:80
- 22:22 - 22:22
@@ -95,6 +113,7 @@ services:
| `GITEA_SQL_USER` | _(empty)_ | Database user (external DB only) | | `GITEA_SQL_USER` | _(empty)_ | Database user (external DB only) |
| `GITEA_SQL_PASS` | _(empty)_ | Database password (external DB only) | | `GITEA_SQL_PASS` | _(empty)_ | Database password (external DB only) |
| `GITEA_SQL_NAME` | _(empty)_ | Database name (external DB only) | | `GITEA_SQL_NAME` | _(empty)_ | Database name (external DB only) |
| `DATABASE_DIR_SQLITE` | `$DATA_DIR/db/sqlite` | Override the SQLite database directory (mount a separate volume here to keep the DB outside `/data`) |
**act\_runner** **act\_runner**
@@ -832,8 +832,8 @@ elif [ "$SERVICE_NAME" = "sqlite" ] || [ "$DATABASE_SERVICE_TYPE" = "sqlite" ];
[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" [ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR"
chmod 777 "$DATABASE_DIR" chmod 777 "$DATABASE_DIR"
fi fi
# Override: gitea always uses a fixed sqlite path under DATA_DIR, not the generic /data/db/sqlite/$SERVER_NAME # Override: pin to a predictable path — respect DATABASE_DIR_SQLITE if set, otherwise use DATA_DIR
DATABASE_DIR="$DATA_DIR/db/sqlite" DATABASE_DIR="${DATABASE_DIR_SQLITE:-$DATA_DIR/db/sqlite}"
[ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR" [ -d "$DATABASE_DIR" ] || mkdir -p "$DATABASE_DIR"
[ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; } [ -n "$DATABASE_ADMIN_WWW_ROOT" ] && { [ ! -d "$DATABASE_ADMIN_WWW_ROOT" ] || mkdir -p "${DATABASE_ADMIN_WWW_ROOT}"; }
# - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - -