From caf3c5197fa179a11e54a7fc0a3205e39b4f72c1 Mon Sep 17 00:00:00 2001 From: Amir B Date: Wed, 2 Jun 2021 22:40:07 +0200 Subject: [PATCH] added pgadmin + updated postgres setup --- .env.example | 5 ++++- README.md | 20 ++++++++++++++++++++ datafuel.docker-compose.yml | 18 +++++++++++++++--- docker-compose.yml | 14 +++++++++++++- 4 files changed, 52 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index 4d45862..a1aab90 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,6 @@ DWH_POSTGRES_PASSWORD=password4db DWH_POSTGRES_ADMIN=postgres -DWH_POSTGRES_DATABASE=dwhdb \ No newline at end of file +DWH_POSTGRES_DATABASE=emsdb + +PGADMIN_DEFAULT_EMAIL=test@jaimal.com +PGADMIN_DEFAULT_PASSWORD=password \ No newline at end of file diff --git a/README.md b/README.md index 1e1c1ab..92ade7a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,22 @@ # postgres_docker Local setup of Postgres on Docker Compose + +## Prerequisites +- Docker (started) and docker-compose (just install Docker for Desktop if you are on laptop) + +## Quickstart +1. Clone repo `git clone https://github.com/datafuel/postgres_docker.git` +2. Run `cd postgres_docker` +3. Rename **.env.example** to **.env** and replace dummy values with yours +4. Run `docker compose -f docker_build/docker-compose.yml` +5. Run `docker compose up` to run services +6. Run `docker exec -it dbt bash` to attach shell + +## Connect to database +1. Give a *Name* to the Connection +2. Go to the *General* Tab then : +- **Host name /address** : postgres_dwh +- **Port** : 5432 +- **Usernname** : postgres +- **Password** : password4db +*The credentials may vary. They are defined in the .env file* \ No newline at end of file diff --git a/datafuel.docker-compose.yml b/datafuel.docker-compose.yml index c59c797..84470b3 100644 --- a/datafuel.docker-compose.yml +++ b/datafuel.docker-compose.yml @@ -7,16 +7,28 @@ services: postgres_dwh: image: postgres:10-alpine container_name: postgres_dwh - volumes: + # volumes: # - "./data_repo:/host" - - ./scripts:/docker-entrypoint-initdb.d - - ./backup:/backup + # - ./scripts:/docker-entrypoint-initdb.d + # - ./backup:/backup ports: - "5433:5432" environment: POSTGRES_USER: $DWH_POSTGRES_ADMIN POSTGRES_PASSWORD: $DWH_POSTGRES_PASSWORD # POSTGRES_DB: $DWH_POSTGRES_DATABASE + + pgadmin: + container_name: pgadmin + image: dpage/pgadmin4 + environment: + PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org} + PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin} + PGADMIN_CONFIG_SERVER_MODE: 'False' + volumes: + - pgadmin:/root/.pgadmin + ports: + - 5050:80 networks: default: diff --git a/docker-compose.yml b/docker-compose.yml index 3f852ba..4b76261 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: # postgreSQL service (share data between services) postgres_dwh: - image: postgres:10-alpine + image: postgres container_name: postgres_dwh volumes: - "./data_repo:/host" @@ -15,3 +15,15 @@ services: POSTGRES_USER: $DWH_POSTGRES_ADMIN POSTGRES_PASSWORD: $DWH_POSTGRES_PASSWORD POSTGRES_DB: testdb + + pgadmin: + container_name: pgadmin + image: dpage/pgadmin4 + environment: + PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org} + PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin} + PGADMIN_CONFIG_SERVER_MODE: 'False' + volumes: + - ./pgadmin_data:/root/.pgadmin + ports: + - 5050:80 \ No newline at end of file