dana-medical-site/.deploy/remote-build-start-dana.sh
2026-10-14 13:33:13 +00:00

34 lines
1.2 KiB
Bash

#!/bin/sh
set -eu
cd /home/mikail/dana-medical
docker compose -p dana-medical -f docker-compose.prod.yml config --quiet
docker compose -p dana-medical -f docker-compose.prod.yml build api
docker compose -p dana-medical -f docker-compose.prod.yml create api
media_volume="$(docker volume ls -q \
--filter label=com.docker.compose.project=dana-medical \
--filter label=com.docker.compose.volume=media)"
test -n "$media_volume"
docker run --rm \
-v "$media_volume:/dest" \
-v /home/mikail/dana-medical/media:/src:ro \
postgres:16-alpine sh -c 'cp -a /src/. /dest/ && chown -R 10001:10001 /dest'
docker compose -p dana-medical -f docker-compose.prod.yml up -d api
api_id="$(docker compose -p dana-medical -f docker-compose.prod.yml ps -q api)"
test -n "$api_id"
i=0
status=starting
while [ "$i" -lt 45 ]; do
status="$(docker inspect --format '{{.State.Health.Status}}' "$api_id")"
[ "$status" = healthy ] && break
[ "$status" = unhealthy ] && docker logs --tail 80 "$api_id" && exit 1
sleep 2
i=$((i + 1))
done
[ "$status" = healthy ]
printf 'api_health=%s\n' "$status"
printf 'media_volume=%s\n' "$media_volume"
printf 'media_files=%s\n' "$(docker run --rm -v "$media_volume:/data:ro" postgres:16-alpine sh -c 'find /data -type f | wc -l')"