mirror of
https://github.com/esauflores/databases.git
synced 2026-03-09 06:30:34 +00:00
refactor: rename DATABASE to SERVICE to make justfile more agnostic
This commit is contained in:
75
Justfile
75
Justfile
@@ -1,53 +1,64 @@
|
|||||||
set shell := ["bash", "-euo", "pipefail", "-c"]
|
set shell := ["bash", "-euo", "pipefail", "-c"]
|
||||||
set dotenv-load := true
|
set dotenv-load := true
|
||||||
|
|
||||||
DATABASE := env("DATABASE", "postgres")
|
SERVICE := env("SERVICE", "postgres")
|
||||||
VARIANT := env("VARIANT", "base")
|
VARIANT := env("VARIANT", "base")
|
||||||
|
|
||||||
_default:
|
_default:
|
||||||
@echo "Default env variables:"
|
#!/usr/bin/env bash
|
||||||
@echo " DATABASE: {{DATABASE}}"
|
echo "Default env variables:"
|
||||||
@echo " VARIANT: {{VARIANT}}"
|
echo " SERVICE: {{SERVICE}}"
|
||||||
@just --list
|
echo " VARIANT: {{VARIANT}}"
|
||||||
|
just --list
|
||||||
|
|
||||||
### Container Management ###
|
### Container Management ###
|
||||||
|
|
||||||
# Start the database and wait until it's healthy
|
# Start the service and wait until it's healthy
|
||||||
up db=DATABASE variant=VARIANT:
|
up service=SERVICE variant=VARIANT:
|
||||||
just build {{db}} {{variant}}
|
just build {{service}} {{variant}}
|
||||||
docker compose -f {{db}}-{{variant}}/compose.yml up -d --wait
|
docker compose -f {{service}}/{{variant}}/compose.yml up -d --wait
|
||||||
|
|
||||||
# Stop the database container but preserve data volumes
|
# Stop the service container but preserve data volumes
|
||||||
down db=DATABASE variant=VARIANT:
|
down service=SERVICE variant=VARIANT:
|
||||||
docker compose -f {{db}}-{{variant}}/compose.yml down
|
docker compose -f {{service}}/{{variant}}/compose.yml down
|
||||||
|
|
||||||
# Remove containers and data volumes but preserve images
|
# Remove containers and data volumes but preserve images
|
||||||
down-volumes db=DATABASE variant=VARIANT:
|
down-volumes service=SERVICE variant=VARIANT:
|
||||||
docker compose -f {{db}}-{{variant}}/compose.yml down -v
|
docker compose -f {{service}}/{{variant}}/compose.yml down -v
|
||||||
|
|
||||||
# Remove containers, volumes, and images
|
# Remove containers, volumes, and images
|
||||||
down-all db=DATABASE variant=VARIANT:
|
down-all service=SERVICE variant=VARIANT:
|
||||||
docker compose -f {{db}}-{{variant}}/compose.yml down -v --rmi local
|
docker compose -f {{service}}/{{variant}}/compose.yml down -v --rmi all
|
||||||
|
|
||||||
|
### Shell Access ###
|
||||||
|
|
||||||
|
# Access a bash shell inside the running container
|
||||||
|
bash service=SERVICE variant=VARIANT:
|
||||||
|
docker compose -f {{service}}/{{variant}}/compose.yml exec {{service}} bash
|
||||||
|
|
||||||
|
# Access a sh shell inside the running container
|
||||||
|
sh service=SERVICE variant=VARIANT:
|
||||||
|
docker compose -f {{service}}/{{variant}}/compose.yml exec {{service}} sh
|
||||||
|
|
||||||
### Build & Publish ###
|
### Build & Publish ###
|
||||||
|
|
||||||
# Build image locally
|
# Build image locally
|
||||||
build db=DATABASE variant=VARIANT:
|
build service=SERVICE variant=VARIANT:
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
IMAGE="db-{{db}}"
|
IMAGE="db-{{service}}"
|
||||||
VERSION="{{variant}}"
|
VERSION="{{variant}}"
|
||||||
|
|
||||||
echo "docker build -f {{db}}-{{variant}}/Dockerfile -t ${IMAGE}:${VERSION} {{db}}-{{variant}}"
|
echo "docker build -f {{service}}/{{variant}}/Dockerfile -t ${IMAGE}:${VERSION} {{service}}/{{variant}}"
|
||||||
docker build -f {{db}}-{{variant}}/Dockerfile -t ${IMAGE}:${VERSION} {{db}}-{{variant}}
|
docker build -f {{service}}/{{variant}}/Dockerfile -t ${IMAGE}:${VERSION} {{service}}/{{variant}}
|
||||||
|
|
||||||
# Build and push image to registry
|
# Build and push image to registry
|
||||||
push db=DATABASE variant=VARIANT:
|
push service=SERVICE variant=VARIANT:
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
PREFIX=${REGISTRY_URL:+${REGISTRY_URL}/}
|
PREFIX=${REGISTRY_URL:+${REGISTRY_URL}/}
|
||||||
IMAGE="db-{{db}}"
|
IMAGE="db-{{service}}"
|
||||||
VERSION="{{variant}}"
|
VERSION="{{variant}}"
|
||||||
|
|
||||||
just build {{db}} {{variant}}
|
just build {{service}} {{variant}}
|
||||||
|
|
||||||
echo "docker tag ${IMAGE}:${VERSION} ${PREFIX}${IMAGE}:${VERSION}"
|
echo "docker tag ${IMAGE}:${VERSION} ${PREFIX}${IMAGE}:${VERSION}"
|
||||||
docker tag ${IMAGE}:${VERSION} ${PREFIX}${IMAGE}:${VERSION}
|
docker tag ${IMAGE}:${VERSION} ${PREFIX}${IMAGE}:${VERSION}
|
||||||
@@ -57,16 +68,18 @@ push db=DATABASE variant=VARIANT:
|
|||||||
|
|
||||||
### Tests ###
|
### Tests ###
|
||||||
|
|
||||||
# Run tests against a database variant
|
# Run tests against a service
|
||||||
test db=DATABASE variant=VARIANT:
|
test service=SERVICE variant=VARIANT:
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
just up {{db}} {{variant}}
|
just up {{service}} {{variant}}
|
||||||
case "{{db}}:{{variant}}" in
|
trap "just down {{service}} {{variant}}" EXIT
|
||||||
|
case "{{service}}:{{variant}}" in
|
||||||
postgres:base) just _test-postgres base ;;
|
postgres:base) just _test-postgres base ;;
|
||||||
*) echo "Unknown database: {{db}} {{variant}}" >&2; exit 1 ;;
|
*) echo "Unknown service: {{service}} {{variant}}" >&2; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
just down {{db}} {{variant}}
|
|
||||||
|
|
||||||
# Run tests against a Postgres database
|
|
||||||
_test-postgres variant=VARIANT:
|
_test-postgres variant=VARIANT:
|
||||||
docker compose -f postgres-{{variant}}/compose.yml exec postgres pg_isready -U ${POSTGRES_USER:-postgres}
|
#!/usr/bin/env bash
|
||||||
|
docker compose -f postgres/{{variant}}/compose.yml exec postgres bash -c "
|
||||||
|
psql -U ${POSTGRES_USER:-postgres} -c 'SELECT 1;'
|
||||||
|
"
|
||||||
|
|||||||
Reference in New Issue
Block a user