Skip to content

Commit a8439c0

Browse files
committed
chore(docker): add postgresql service properly
1 parent 29b8fe7 commit a8439c0

14 files changed

Lines changed: 104 additions & 65 deletions

File tree

.env.tpl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,20 @@ ANSIBLE_VAULT_KEY=${ANSIBLE_VAULT_KEY}
22
ENV=${ENV}
33
FLOWER_PORT=${FLOWER_PORT}
44
FLOWER_PASSWORD=${FLOWER_PASSWORD}
5+
HOST_POSTGRES_DUMP=${HOST_POSTGRES_DUMP}
56
MAPBOX_API_KEY=${MAPBOX_API_KEY}
7+
POSTGRES_DUMP_HOST=${POSTGRES_DUMP_HOST}
8+
POSTGRES_DUMP_CONTAINER=${POSTGRES_DUMP_CONTAINER}
69
POSTGRES_HOST=${POSTGRES_HOST}
710
POSTGRES_PORT=${POSTGRES_PORT}
811
POSTGRES_USER=${POSTGRES_USER}
912
POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
1013
POSTGRES_DB=${POSTGRES_DB}
11-
POSTGRES_DB_PRIVATE=${POSTGRES_DB_PRIVATE}
12-
POSTGRES_DB_SANDBOX=${POSTGRES_DB_SANDBOX}
14+
POSTGRES_EPIGRAPH_USER=${POSTGRES_EPIGRAPH_USER}
15+
POSTGRES_EPIGRAPH_PASSWORD=${POSTGRES_EPIGRAPH_PASSWORD}
16+
POSTGRES_EPIGRAPH_DB=${POSTGRES_EPIGRAPH_DB}
17+
POSTGRES_EPIGRAPH_DB_PRIVATE=${POSTGRES_DB_EPIGRAPH_PRIVATE}
18+
POSTGRES_EPIGRAPH_DB_SANDBOX=${POSTGRES_DB_EPIGRAPH_SANDBOX}
1319
RECAPTCHA_PUBLIC_KEY=${RECAPTCHA_PUBLIC_KEY}
1420
RECAPTCHA_PRIVATE_KEY=${RECAPTCHA_PRIVATE_KEY}
1521
REDIS_HOST=${REDIS_HOST}

.github/workflows/main.yaml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,17 @@ env:
1010
ENV: dev
1111
FLOWER_PORT: 28888
1212
FLOWER_PASSWORD: flowerpass
13+
POSTGRES_DUMP_HOST: /tmp/dump
1314
POSTGRES_HOST: epigraphhub-db
1415
POSTGRES_PORT: 25432
15-
POSTGRES_USER: dev_epigraph
16-
POSTGRES_PASSWORD: dev_epigraph
17-
POSTGRES_DB: dev_epigraphhub
18-
POSTGRES_DB_PRIVATE: dev_privatehub
19-
POSTGRES_DB_SANDBOX: dev_sandbox
16+
POSTGRES_USER: postgres
17+
POSTGRES_PASSWORD: postgres
18+
POSTGRES_DB: postgres
19+
POSTGRES_EPIGRAPH_USER: dev_epigraph
20+
POSTGRES_EPIGRAPH_PASSWORD: dev_epigraph
21+
POSTGRES_EPIGRAPH_DB: dev_epigraphhub
22+
POSTGRES_EPIGRAPH_DB_PRIVATE: dev_privatehub
23+
POSTGRES_EPIGRAPH_DB_SANDBOX: dev_sandbox
2024
REDIS_HOST: epigraphhub-redis
2125
REDIS_PORT: 6379
2226
REDIS_PASSWORD: redispass

Data_Collection/CRON_scripts/config.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88

99
DB_HOST = os.environ.get("POSTGRES_HOST")
1010
DB_PORT = os.environ.get("POSTGRES_PORT")
11-
DB_USER = os.environ.get("POSTGRES_USER")
12-
DB_PASSWORD = os.environ.get("POSTGRES_PASSWORD")
13-
DB_NAME = os.environ.get("POSTGRES_DB")
14-
DB_NAME_PRIVATE = os.environ.get("POSTGRES_DB_PRIVATE")
11+
DB_USER = os.environ.get("POSTGRES_EPIGRAPH_USER")
12+
DB_PASSWORD = os.environ.get("POSTGRES_EPIGRAPH_PASSWORD")
13+
DB_NAME = os.environ.get("POSTGRES_EPIGRAPH_DB")
14+
DB_NAME_PRIVATE = os.environ.get("POSTGRES_EPIGRAPH_DB_PRIVATE")
1515

1616
DB_URI = (
1717
f"postgresql://{DB_USER}:{DB_PASSWORD}"

Makefile

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ SERVICE:=epigraphhub-superset
44
ENV:=dev
55
CONSOLE:=bash
66
CRON:=
7+
FILE:=
78

89
DOCKER=docker-compose \
910
--env-file .env \
1011
--project-name eph-$(ENV) \
11-
--file docker/compose-base.yaml \
12-
--file docker/compose-$(ENV).yaml
12+
--file docker/compose.yaml
1313

1414
# DOCKER
1515

@@ -30,6 +30,11 @@ docker-stop:
3030
$(DOCKER) stop ${SERVICES}
3131

3232

33+
.PHONY:docker-down
34+
docker-down:
35+
$(DOCKER) down --volumes
36+
37+
3338
.PHONY:docker-restart
3439
docker-restart: docker-stop docker-start
3540
echo "[II] Docker services restarted!"
@@ -38,6 +43,10 @@ docker-restart: docker-stop docker-start
3843
docker-logs-follow:
3944
$(DOCKER) logs --follow --tail 300 ${SERVICES}
4045

46+
.PHONY:docker-logs-follow
47+
docker-logs-follow:
48+
$(DOCKER) logs --follow --tail 100 ${SERVICES}
49+
4150
.PHONY:docker-logs
4251
docker-logs:
4352
$(DOCKER) logs --tail 300 ${SERVICES}
@@ -60,7 +69,7 @@ docker-wait-all:
6069
docker-dev-prepare-db:
6170
# used for development
6271
$(DOCKER) exec -T epigraphhub-superset \
63-
bash /opt/EpiGraphHub/docker/postgresql/prepare-db.sh
72+
bash /opt/EpiGraphHub/docker/postgresql/dev/prepare-db.sh
6473

6574

6675
.PHONY:docker-run-cron
@@ -100,6 +109,18 @@ docker-run-bash:
100109
$(DOCKER) run --rm ${SERVICE} bash
101110

102111

112+
.PHONY:docker-db-dump
113+
docker-db-dump:
114+
$(DOCKER) exec -T epigraphhub-superset bash \
115+
/opt/EpiGraphHub/docker/postgresql/dump.sh
116+
117+
118+
.PHONY:docker-db-restore
119+
docker-db-restore:
120+
$(DOCKER) exec -T epigraphhub-superset bash \
121+
/opt/EpiGraphHub/docker/postgresql/restore.sh ${FILE}
122+
123+
103124
# conda
104125

105126
.ONESHELL:

docker/compose-dev.yaml

Lines changed: 0 additions & 24 deletions
This file was deleted.

docker/compose-prod.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ services:
3838
volumes:
3939
- ..:/opt/EpiGraphHub
4040
- ${SUPERSET_DB_PATH_DIR_HOST}:/opt/data/superset/
41+
- ${POSTGRES_DUMP_HOST}:${POSTGRES_DUMP_CONTAINER}
4142
ports:
4243
- ${SUPERSET_PORT}:8088
4344
depends_on:
45+
- epigraphhub-db
4446
- epigraphhub-redis
4547
- epigraphhub-celery
4648
- epigraphhub-celery-beat
@@ -167,3 +169,4 @@ services:
167169

168170
volumes:
169171
redis:
172+
pgdata:
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
3+
# =================================
4+
# NOTE: USE IT JUST FOR DEVELOPMENT
5+
# =================================
6+
7+
set -ex
8+
9+
DOCKER_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && cd ../.. && pwd )"
10+
PSQL_CONNECTION="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}"
11+
12+
echo "[II] CREATE DATABASE"
13+
psql "${PSQL_CONNECTION}/postgres" < ${DOCKER_DIR}/sql/dev/database.sql
14+
15+
echo "[II] LOAD EPIGRAPHHUB DUMP"
16+
psql "${PSQL_CONNECTION}/${POSTGRES_EPIGRAPH_DB}" < ${DOCKER_DIR}/sql/dev/epigraphhub.sql
17+
18+
echo "[II] LOAD PRIVATE DUMP"
19+
psql "${PSQL_CONNECTION}/${POSTGRES_EPIGRAPH_DB_PRIVATE}" < ${DOCKER_DIR}/sql/dev/privatehub.sql

docker/postgresql/dump.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
3+
PROJECT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && cd ../.. && pwd )"
4+
5+
if [ -f ${PROJECT_DIR}/.env ]; then
6+
# Load Environment Variables
7+
export $(cat ${PROJECT_DIR}/.env | grep -v '#' | sed 's/\r$//' | awk '/=/ {print $1}' )
8+
fi
9+
10+
POSTGRES_DUMP_HOST=${POSTGRES_DUMP_HOST:-/tmp/dump}
11+
mkdir -p ${POSTGRES_DUMP_HOST}
12+
13+
set -ex
14+
15+
PGPASSWORD=${POSTGRES_PASSWORD} pg_dumpall \
16+
--host ${POSTGRES_HOST} \
17+
--port ${POSTGRES_PORT} \
18+
--user ${POSTGRES_USER} \
19+
> ${POSTGRES_DUMP_HOST}/$(date --iso-8601).dump

docker/postgresql/prepare-db.sh

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)