From 0424df9b6975322788069bbcb181a93aaad35b73 Mon Sep 17 00:00:00 2001
From: Mouaz Abdelsamad <ma03081@surrey.ac.uk>
Date: Tue, 9 Apr 2024 03:45:50 +0100
Subject: [PATCH] docker compose for booking microservice

---
 .env                        | 24 +++++++++++----------
 GatewayAPI/appsettings.json |  3 +++
 docker-compose.yml          | 42 +++++++++++++++++++++++++------------
 3 files changed, 45 insertions(+), 24 deletions(-)

diff --git a/.env b/.env
index c15e04b..f3c6ff9 100644
--- a/.env
+++ b/.env
@@ -4,20 +4,22 @@ MYSQL_IMAGE_TAG=8.0
 
 
 # Database configuration
-#DB_PORT=3307
-#DB_NAME=myDB
-#DB_USER=user
-#DB_PASSWORD=user
-#DB_CHARSET=utf8mb4
-
-DB_PORT=3308
-DB_NAME=AspNetCoreDb
-DB_USER=root
-DB_PASSWORD=
+DB_PORT=3307
+DB_NAME=myDB
+DB_USER=user
+DB_PASSWORD=user
 DB_CHARSET=utf8mb4
 
+# Keeping these for dev perposes, will remove at the end
+#DB_PORT=3308
+#DB_NAME=AspNetCoreDb
+#DB_USER=root
+#DB_PASSWORD=
+#DB_CHARSET=utf8mb4
+
 # Service ports
 USER_MICROSERVICE_PORT=5089
 FLIGHT_MICROSERVICE_PORT=5175
 GATEWAY_API_PORT=5267
-CLIENT_PORT=4200
\ No newline at end of file
+BOOKING_MICROSERVICE_PORT=5207
+CLIENT_PORT=4200
diff --git a/GatewayAPI/appsettings.json b/GatewayAPI/appsettings.json
index f0c8836..a5a7960 100644
--- a/GatewayAPI/appsettings.json
+++ b/GatewayAPI/appsettings.json
@@ -11,5 +11,8 @@
   },
   "FlightMicroservice": {
     "BaseUrl": "http://localhost:5175"
+  },
+  "BookingMicroservice": {
+    "BaseUrl": "http://localhost:5207"
   }
 }
diff --git a/docker-compose.yml b/docker-compose.yml
index ac1f7f9..1826cc1 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -28,6 +28,21 @@ services:
       - Jwt__Issuer=http://usermicroservice:8080
       - Jwt__Audience=http://usermicroservice:8080
 
+  bookingmicroservice:
+    build:
+      context: ./BookingMicroservice
+    image: bookingmicroservice:${IMAGE_TAG}
+    ports:
+      - "${BOOKING_MICROSERVICE_PORT}:8080"
+    environment:
+      - ASPNETCORE_ENVIRONMENT=Production
+      - DOTNET_RUNNING_IN_CONTAINER=true
+      - ConnectionStrings__DefaultConnection=Server=host.docker.internal;Port=${DB_PORT};Database=${DB_NAME};User=${DB_USER};Password=${DB_PASSWORD};CharSet=${DB_CHARSET}
+      - Jwt__Key=0QTrd3jToEYj205k01A2R87Hc5YpqDNeywg7JzQpczs=
+      - Jwt__Issuer=http://usermicroservice:8080
+      - Jwt__Audience=http://usermicroservice:8080
+      - FlightMicroservice__BaseUrl=http://flightmicroservice:8080
+
   gatewayapi:
     build:
       context: ./GatewayAPI
@@ -39,6 +54,7 @@ services:
       - DOTNET_RUNNING_IN_CONTAINER=true
       - UserMicroservice__BaseUrl=http://usermicroservice:8080
       - FlightMicroservice__BaseUrl=http://flightmicroservice:8080
+      - BookingMicroservice__BaseUrl=http://bookingmicroservice:8080
 
   client:
     build:
@@ -47,16 +63,16 @@ services:
     ports:
       - "${CLIENT_PORT}:4200"
 
-  # db:
-  #   image: mysql:${MYSQL_IMAGE_TAG}
-  #   command: --default-authentication-plugin=mysql_native_password
-  #   restart: always
-  #   environment:
-  #     MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
-  #     MYSQL_DATABASE: ${DB_NAME}
-  #     MYSQL_USER: ${DB_USER}
-  #     MYSQL_PASSWORD: ${DB_PASSWORD}
-  #   volumes:
-  #     - ./Database:/docker-entrypoint-initdb.d
-  #   ports:
-  #     - "${DB_PORT}:3306"
+  db:
+    image: mysql:${MYSQL_IMAGE_TAG}
+    command: --default-authentication-plugin=mysql_native_password
+    restart: always
+    environment:
+      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
+      MYSQL_DATABASE: ${DB_NAME}
+      MYSQL_USER: ${DB_USER}
+      MYSQL_PASSWORD: ${DB_PASSWORD}
+    volumes:
+      - ./Database:/docker-entrypoint-initdb.d
+    ports:
+      - "${DB_PORT}:3306"
-- 
GitLab