|
1 | 1 | #!/usr/bin/env bash
|
2 | 2 |
|
3 |
| -set pipefail -euo |
4 |
| - |
5 | 3 | SOURCE_DIR=`dirname "${BASH_SOURCE[0]}"`
|
| 4 | + |
| 5 | +source "$SOURCE_DIR/env-postgres.sh" |
| 6 | + |
6 | 7 | source "$SOURCE_DIR/common.sh"
|
7 | 8 |
|
8 |
| -CONTAINER_NAME=pgsql-${PG_VERSION}-metabase |
9 |
| -DB_NAME=metabase |
10 |
| -DB_USER=metabase |
11 |
| -DB_PASSWORD=Password1234 |
12 |
| -HOST_PORT=${PGSQL_PORT:-5432} |
13 |
| -DATA_DIR=${PGSQL_DATA_DIR:-$HOME/metabase-pgsql-data} |
| 9 | +DATA_DIR=${HOME}/metabase-pgsql-${PG_VERSION}-data |
14 | 10 | DOCKER_NETWORK=psql-metabase-network
|
15 | 11 |
|
16 |
| -kill-existing $CONTAINER_NAME |
17 |
| -create-network-if-needed $DOCKER_NETWORK |
| 12 | +kill-existing ${CONTAINER_NAME} |
| 13 | +create-network-if-needed ${DOCKER_NETWORK} |
18 | 14 |
|
19 | 15 | docker run \
|
20 | 16 | --rm \
|
21 | 17 | -d \
|
22 |
| - -p $HOST_PORT:5432 \ |
23 |
| - --network $DOCKER_NETWORK \ |
24 |
| - -e POSTGRES_USER=$DB_USER \ |
25 |
| - -e POSTGRES_DB=$DB_NAME \ |
26 |
| - -e POSTGRES_PASSWORD=$DB_PASSWORD \ |
| 18 | + -p ${HOST_PORT}:5432 \ |
| 19 | + --network ${DOCKER_NETWORK} \ |
| 20 | + -e POSTGRES_USER=${DB_USER} \ |
| 21 | + -e POSTGRES_DB=${DB_NAME} \ |
| 22 | + -e POSTGRES_PASSWORD=${DB_PASSWORD} \ |
27 | 23 | -e PGDATA=/var/lib/postgresql/data \
|
28 |
| - -v $DATA_DIR:/var/lib/postgresql/data:Z \ |
29 |
| - --name $CONTAINER_NAME \ |
| 24 | + -v ${DATA_DIR}:/var/lib/postgresql/data:Z \ |
| 25 | + --name ${CONTAINER_NAME} \ |
30 | 26 | postgres:${PG_VERSION}
|
31 | 27 |
|
32 | 28 | cat << EOF
|
33 |
| -Started PostgreSQL ${PG_VERSION} port $HOST_PORT via Docker (container name: $CONTAINER_NAME). Data will be persisted in $DATA_DIR on the host machine (delete it to reset). |
34 |
| -
|
35 |
| -JDBC URL: jdbc:postgres://localhost:$HOST_PORT/$DB_NAME?user=$DB_USER |
36 | 29 |
|
37 |
| -Environment variables for Metabase (to use as app DB): |
38 |
| -MB_DB_TYPE=postgres MB_DB_DBNAME=$DB_NAME MB_DB_HOST=localhost MB_DB_PASS=$DB_PASSWORD MB_DB_PORT=$HOST_PORT MB_DB_USER=$DB_USER MB_POSTGRES_TEST_USER=$DB_USER |
| 30 | +Started PostgreSQL ${PG_VERSION} on port ${HOST_PORT} via Docker (container name: ${CONTAINER_NAME}). |
| 31 | +Data will be persisted in ${DATA_DIR} on the host machine (delete it to reset). |
39 | 32 |
|
40 | 33 | To open a SQL client session:
|
41 |
| -docker run -it --rm --network $DOCKER_NETWORK postgres:12 psql -h $CONTAINER_NAME -U $DB_USER |
42 |
| -And enter the DB user password for $DB_USER: $DB_PASSWORD |
| 34 | +docker run -it --rm --network ${DOCKER_NETWORK} postgres:${PG_VERSION} psql -h ${CONTAINER_NAME} -U ${DB_USER} |
| 35 | +And enter the DB user password for ${DB_USER}: ${DB_PASSWORD} |
| 36 | +
|
| 37 | +JDBC URL: jdbc:postgres://localhost:${HOST_PORT}/${DB_NAME}?user=${DB_USER} |
| 38 | +
|
43 | 39 | EOF
|
| 40 | + |
| 41 | +print-postgres-vars |
0 commit comments