Browse Source

refactor docker compose file

Sergey Shchogolev 1 year ago
parent
commit
a242a251a2
3 changed files with 56 additions and 4 deletions
  1. 7 2
      .env
  2. 7 2
      .env.local
  3. 42 0
      docker-compose.yml

+ 7 - 2
.env

@@ -1,5 +1,5 @@
 #POSTGRES credentials
-DB_HOST=localhost #and will be DB_HOST=postgres/DB_HOST=pg_tefo from container
+DB_HOST=pg_feed_api #and will be DB_HOST=postgres/DB_HOST=pg_tefo from container
 DB_PORT=5432
 DB_USER=postgres
 DB_PASSWORD=postgres
@@ -7,4 +7,9 @@ DB_NAME=kng_feed_api
 
 # Authentication credentials
 TOKEN_TTL="2000"
-JWT_PRIVATE_KEY="Kq4NZSrtRkyD5NqzjkeHlw"
+JWT_PRIVATE_KEY="Kq4NZSrtRkyD5NqzjkeHlw"
+
+# pgAdmin4 Credentials for Docker Compose
+PGADMIN_DEFAULT_EMAIL=admin@admin.com
+PGADMIN_DEFAULT_PASSWORD=password123
+PGADMIN_LISTEN_PORT=80

+ 7 - 2
.env.local

@@ -1,5 +1,5 @@
 #POSTGRES credentials
-DB_HOST=localhost #and will be DB_HOST=postgres/DB_HOST=pg_tefo from container
+DB_HOST=pg_feed_api #and will be DB_HOST=postgres/DB_HOST=pg_tefo from container
 DB_PORT=5432
 DB_USER=postgres
 DB_PASSWORD=postgres
@@ -7,4 +7,9 @@ DB_NAME=kng_feed_api
 
 # Authentication credentials
 TOKEN_TTL="2000"
-JWT_PRIVATE_KEY="Kq4NZSrtRkyD5NqzjkeHlw"
+JWT_PRIVATE_KEY="Kq4NZSrtRkyD5NqzjkeHlw"
+
+# pgAdmin4 Credentials for Docker Compose
+PGADMIN_DEFAULT_EMAIL=admin@admin.com
+PGADMIN_DEFAULT_PASSWORD=password123
+PGADMIN_LISTEN_PORT=80

+ 42 - 0
docker-compose.yml

@@ -1,6 +1,7 @@
 version: "3.9"
 services:
   app:
+    container_name: app_feed_api
     build:
       dockerfile: Dockerfile
       context: .
@@ -14,6 +15,47 @@ services:
       - api_network
     extra_hosts:
       - "host.docker.internal:host-gateway"
+    depends_on:
+      - postgres
+  postgres:
+    image: postgres:15.3-alpine
+    container_name: pg_feed_api
+    environment:
+      POSTGRES_USER: ${DB_USER}
+      POSTGRES_PASSWORD: ${DB_PASSWORD}
+      POSTGRES_DB: ${DB_NAME}
+    ports:
+      - 5432:5432
+    expose:
+      - "6500"
+    volumes:
+      - postgres:/var/lib/postgresql/data
+    healthcheck:
+      test: ["CMD", "pg_isready", "-h", "postgres", "-U", "${DB_USER}"]
+      interval: 5s
+      timeout: 5s
+      retries: 5
+    networks:
+      - api_network   
+  pgadmin:
+    image: dpage/pgadmin4
+    container_name: pgadmin_feed_api
+    environment:
+      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
+      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
+      PGADMIN_LISTEN_PORT: ${PGADMIN_LISTEN_PORT}
+    ports:
+      - 5050:80
+    volumes:
+      - pgadmin-data:/var/lib/pgadmin
+    restart: "no"
+    depends_on:
+      - postgres
+    networks:
+      - api_network         
 
 networks:
   api_network:
+volumes:
+  postgres:
+  pgadmin-data: