diff --git a/.env.example b/.env.example deleted file mode 100644 index d37f594..0000000 --- a/.env.example +++ /dev/null @@ -1,8 +0,0 @@ -### Setup ### -REGISTRY_URL='' - -### Postgres ### -POSTGRES_USER='postgres' -POSTGRES_PASSWORD='postgres' -POSTGRES_DB='postgres' -POSTGRES_PORT='5432' diff --git a/README.md b/README.md index 0580fdb..4c84827 100644 --- a/README.md +++ b/README.md @@ -1,71 +1,33 @@ # databases -Custom database Docker images, built for local development and self-hosted deployments. +Custom database Docker images for local development and self-hosted deployments. -## Supported Variants +## Postgres 18 -| Variant | Base Image | -| ---------- | ---------------------- | -| `postgres` | `postgres:18.3-alpine` | - -## Prerequisites - -- [mise](https://mise.jdx.dev/) — manages tool versions -- [Docker](https://docs.docker.com/get-docker/) with Compose plugin - -```bash -mise install -``` - -## Configuration - -Copy `.env.example` to `.env` and adjust as needed: +Based on `postgres:18.3-alpine`. +### Configuration ```bash cp .env.example .env ``` -| Variable | Default | Description | -| ------------------- | ---------- | ------------------------------------- | -| `REGISTRY_URL` | _(empty)_ | Container registry URL for publishing | -| `POSTGRES_USER` | `postgres` | Postgres superuser name | -| `POSTGRES_PASSWORD` | `postgres` | Postgres superuser password | -| `POSTGRES_DB` | `postgres` | Default database name | -| `POSTGRES_PORT` | `5432` | Host port mapped to Postgres | - -## Usage +| Variable | Default | Description | +| ------------------- | ---------- | ---------------------------- | +| `POSTGRES_USER` | `postgres` | Postgres superuser name | +| `POSTGRES_PASSWORD` | `postgres` | Postgres superuser password | +| `POSTGRES_DB` | `postgres` | Default database name | +| `POSTGRES_PORT` | `5432` | Host port mapped to Postgres | +### Usage ```bash -# Build image locally -just build [db] - -# Start database (waits until healthy) -just db-up [db] - -# Stop database and remove volumes -just db-down [db] - -# Run tests -just test [db] - -# Build and push to registry -just publish [db] +docker pull git.fastwaydata.com/esauflores/database-postgres:latest +``` +```yaml +services: + postgres: + image: git.fastwaydata.com/esauflores/database-postgres:latest + env_file: .env + ports: + - "${POSTGRES_PORT:-5432}:5432" ``` -`db` defaults to `postgres` when not specified. - -## CI/CD - -The GitHub Actions workflow (`.github/workflows/test-and-push.yml`) triggers on `v*` tag pushes: - -1. **Test** — spins up the database and verifies connectivity -2. **Publish** — builds and pushes the image to the configured registry - -Required repository secrets: `REGISTRY_URL`, `REGISTRY_USERNAME`, `REGISTRY_PASSWORD`. - -## Adding a New Variant - -1. Create `/Dockerfile` and `/compose.yml` -2. Add a `_test-` recipe and a case entry in `test` in the `Justfile` -3. Add `` to the `matrix.db` list in `.github/workflows/test-and-push.yml` -4. Add any new env vars to `.env.example`