db (966B) - Raw
1 #!/bin/bash 2 set -euo pipefail 3 4 name=wm-mj 5 6 _psql() { 7 env \ 8 PGPASSWORD=osm \ 9 PGHOST=127.0.0.1 \ 10 PGUSER=osm \ 11 PGDATABASE=osm \ 12 psql "$@" 13 } 14 15 _wait_for_postgres() { 16 >&2 echo -n "Waiting for postgres" 17 for _ in $(seq 240); do 18 if _psql -qc '\q' 2>/dev/null; then 19 >&2 echo " up" 20 exit 0 21 fi 22 >&2 echo -n . 23 sleep 1 24 done 25 >&2 echo " down" 26 exit 1 27 } 28 29 case ${1:-} in 30 start) 31 _psql -qc '\q' 2>/dev/null && exit 0 32 docker run -d --rm \ 33 --net=host \ 34 -e POSTGRES_DBNAME=osm \ 35 -e POSTGRES_USER=osm \ 36 -e POSTGRES_PASSWORD=osm \ 37 --name "$name" \ 38 postgis/postgis:13-3.1-alpine \ 39 -c log_statement=all \ 40 -c listen_addresses=127.0.0.1 41 _wait_for_postgres 42 ;; 43 stop) 44 docker stop "$name" 45 ;; 46 *) 47 _psql "$@" 48 ;; 49 esac