Deploy: MariaDB from Gitea registry to fix amd64 manifest error

- Use image 10.0.10.205:3000/bert.hausmans/mariadb:11 in compose
- Add deploy/mariadb/Dockerfile (FROM mariadb:11, platform amd64)
- Add scripts/push-mariadb-to-registry.sh to build and push amd64 image once
- Update README with one-time push step and troubleshooting

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-03 14:21:00 +01:00
parent a63252135c
commit da64e52816
4 changed files with 30 additions and 8 deletions

View File

@@ -22,7 +22,7 @@ After pushing, deploy on the server: set `TAG=1.0.0` in the stack `.env`, then i
| API | 3001 | 8000 | http://10.0.10.189:3001 |
| Admin | 3002 | 80 | http://10.0.10.189:3002 |
| Upload | 3003 | 80 | http://10.0.10.189:3003 |
| MySQL | 3004 | 3306 | (internal; use 3004 only for direct DB access) |
| MariaDB | 3004 | 3306 | (internal; use 3004 only for direct DB access) |
## One-time setup in Dockge
@@ -37,7 +37,8 @@ After pushing, deploy on the server: set `TAG=1.0.0` in the stack `.env`, then i
- `SANCTUM_STATEFUL_DOMAINS=10.0.10.189:3002,10.0.10.189:3003`
- Google OAuth if used: `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `GOOGLE_REDIRECT_URI`
3. Ensure Docker on the server has `10.0.10.205:3000` in `insecure-registries` and run `docker login 10.0.10.205:3000`.
4. First deploy: Pull, then Start (or `docker compose -f deploy/docker-compose.yml pull && docker compose -f deploy/docker-compose.yml up -d`).
4. **One-time:** If the server fails with "no matching manifest for linux/amd64" when pulling the database image, push the amd64 MariaDB image to Gitea from your dev machine: `./scripts/push-mariadb-to-registry.sh` (after `docker login 10.0.10.205:3000`). The stack uses this image so the server only pulls from Gitea.
5. First deploy: Pull, then Start (or `docker compose -f deploy/docker-compose.yml pull && docker compose -f deploy/docker-compose.yml up -d`).
## Deploy new version
@@ -52,6 +53,6 @@ This means the registry has no image for the tag Dockge is using.
2. **Re-push all images** From project root run `./scripts/docker-build-push.sh` again so api, admin, and upload are all pushed with the same tag.
3. **Registry login on the server** Where Dockge runs, ensure `docker login 10.0.10.205:3000` has been done and that Docker has `10.0.10.205:3000` in `insecure-registries` (if using HTTP).
### "no matching manifest for linux/amd64" (MySQL)
### "no matching manifest for linux/amd64" (database)
The stack pins MySQL to `docker.io/library/mysql:8.0` with `platform: linux/amd64` so the server pulls the correct image from Docker Hub. If your Dockge server is ARM (e.g. Raspberry Pi), change the MySQL service in `docker-compose.yml` to `platform: linux/arm64`.
The stack uses **MariaDB 11** from your Gitea registry (`10.0.10.205:3000/bert.hausmans/mariadb:11`). If that image is missing or the server cant pull from Docker Hub, run once from your dev machine (after `docker login 10.0.10.205:3000`): `./scripts/push-mariadb-to-registry.sh`. It pulls the amd64 image from Docker Hub and pushes it to Gitea so the server only pulls from Gitea.