This commit is contained in:
lubiana 2025-07-24 11:35:37 +02:00
parent ba1f43fd8e
commit 0f9fbc9375
Signed by: lubiana
SSH key fingerprint: SHA256:vW1EA0fRR3Fw+dD/sM0K+x3Il2gSry6YRYHqOeQwrfk
15 changed files with 381 additions and 297 deletions

View file

@ -113,6 +113,8 @@ deployment:
#### Using Podman (Recommended)
The application is optimized for rootless Podman operation:
```bash
# Build and run with the provided script
./build-container.sh
@ -125,8 +127,21 @@ podman run -d --name gocheck-container -p 8080:8080 -v gocheck-data:/app gocheck
PORT=3000 ./build-container.sh
# Or manually:
podman run -d --name gocheck-container -p 3000:8080 -e PORT=8080 -v gocheck-data:/app gocheck
# Using Podman Compose (recommended for rootless):
podman-compose -f podman-compose.yml up -d
# Or with Docker Compose (also works with Podman):
docker-compose up -d
```
**Rootless Podman Compatibility:**
- Uses UID/GID 1000 for better user mapping
- Includes security options for rootless operation
- Supports both `podman-compose` and `docker-compose`
- Alternative compose file available: `podman-compose.yml`
#### Using Docker
```bash
@ -142,10 +157,11 @@ docker run -d --name gocheck-container -p 3000:8080 -e PORT=8080 -v gocheck-data
#### Container Features
- **Multi-stage build**: Uses Go Alpine for building, distroless for runtime
- **Minimal footprint**: Runtime container is only ~2MB
- **Multi-stage build**: Uses Go Alpine for building, Alpine for runtime
- **Minimal footprint**: Runtime container is optimized for size
- **Persistent data**: SQLite database is stored in a named volume
- **Security**: Runs as non-root user in distroless container
- **Security**: Runs as non-root user with UID 1000
- **Rootless Podman compatible**: Optimized for rootless container operation
- **Configurable**: Supports environment variables for customization
#### Environment Variables