From c085a49c8cc720376f6cd0378ff33d9cf5063aea Mon Sep 17 00:00:00 2001 From: esk4nz Date: Mon, 23 Mar 2026 21:31:31 +0200 Subject: [PATCH 01/12] implement Edge-Hub integration with user_id validation (SCRUM-93, SCRUM-94) - Agent: Updated config and main - Edge: Implemented adapter factory in main.py to switch between MQTT and HTTP. - Edge: Updated AgentData entity and processing logic to support user_id. - Infrastructure: Configured docker-compose for dynamic protocol switching and environment management. --- agent/src/config.py | 2 +- agent/src/main.py | 1 + docker-compose.yaml | 11 ++++-- edge/app/adapters/agent_mqtt_adapter.py | 7 ++-- edge/app/entities/agent_data.py | 1 + edge/app/usecases/data_processing.py | 8 +++++ edge/config.py | 7 ++-- edge/main.py | 45 ++++++++++++++++--------- 8 files changed, 59 insertions(+), 23 deletions(-) diff --git a/agent/src/config.py b/agent/src/config.py index f507c71..c5ae3f3 100644 --- a/agent/src/config.py +++ b/agent/src/config.py @@ -8,7 +8,7 @@ def try_parse(type, value: str): return None -USER_ID = 1 +USER_ID = try_parse(int, os.environ.get("USER_ID")) or 1 # MQTT config MQTT_BROKER_HOST = os.environ.get("MQTT_BROKER_HOST") or "mqtt" MQTT_BROKER_PORT = try_parse(int, os.environ.get("MQTT_BROKER_PORT")) or 1883 diff --git a/agent/src/main.py b/agent/src/main.py index ce17d6b..65380af 100644 --- a/agent/src/main.py +++ b/agent/src/main.py @@ -28,6 +28,7 @@ def publish(client, topic, datasource): data = datasource.read() msg = AggregatedDataSchema().dumps(data) result = client.publish(topic, msg) + print(f"Published to {topic}: {msg[:50]}...") status = result[0] if status != 0: print(f"Failed to send message to topic {topic}") diff --git a/docker-compose.yaml b/docker-compose.yaml index 54cdbbe..af411cd 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -22,6 +22,7 @@ services: depends_on: - mqtt environment: + PYTHONUNBUFFERED: 1 MQTT_BROKER_HOST: "mqtt" MQTT_BROKER_PORT: 1883 MQTT_TOPIC: "agent_data_topic" @@ -37,11 +38,13 @@ services: depends_on: - mqtt environment: + PYTHONUNBUFFERED: 1 MQTT_BROKER_HOST: "mqtt" MQTT_BROKER_PORT: 1883 - MQTT_TOPIC: " " - HUB_HOST: "store" + MQTT_TOPIC: "agent_data_topic" + HUB_HOST: "hub" HUB_PORT: 8000 + HUB_CONNECTION_TYPE: "http" HUB_MQTT_BROKER_HOST: "mqtt" HUB_MQTT_BROKER_PORT: 1883 HUB_MQTT_TOPIC: "processed_data_topic" @@ -54,6 +57,7 @@ services: container_name: postgres_db restart: always environment: + PYTHONUNBUFFERED: 1 POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: test_db @@ -70,6 +74,7 @@ services: image: dpage/pgadmin4 restart: always environment: + PYTHONUNBUFFERED: 1 PGADMIN_DEFAULT_EMAIL: admin@admin.com PGADMIN_DEFAULT_PASSWORD: root volumes: @@ -89,6 +94,7 @@ services: - postgres_db restart: always environment: + PYTHONUNBUFFERED: 1 POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: test_db @@ -120,6 +126,7 @@ services: - redis - store environment: + PYTHONUNBUFFERED: 1 STORE_API_HOST: "store" STORE_API_PORT: 8000 REDIS_HOST: "redis" diff --git a/edge/app/adapters/agent_mqtt_adapter.py b/edge/app/adapters/agent_mqtt_adapter.py index 855370f..2f4597d 100644 --- a/edge/app/adapters/agent_mqtt_adapter.py +++ b/edge/app/adapters/agent_mqtt_adapter.py @@ -40,8 +40,11 @@ class AgentMQTTAdapter(AgentGateway): # Process the received data (you can call a use case here if needed) processed_data = process_agent_data(agent_data) # Store the agent_data in the database (you can send it to the data processing module) - if not self.hub_gateway.save_data(processed_data): - logging.error("Hub is not available") + if processed_data is not None: + if not self.hub_gateway.save_data(processed_data): + logging.error("Hub is not available") + else: + logging.info("Road is fine, no data sent to hub.") except Exception as e: logging.info(f"Error processing MQTT message: {e}") diff --git a/edge/app/entities/agent_data.py b/edge/app/entities/agent_data.py index 3f92a8b..fdb2b5e 100644 --- a/edge/app/entities/agent_data.py +++ b/edge/app/entities/agent_data.py @@ -14,6 +14,7 @@ class GpsData(BaseModel): class AgentData(BaseModel): + user_id: int accelerometer: AccelerometerData gps: GpsData timestamp: datetime diff --git a/edge/app/usecases/data_processing.py b/edge/app/usecases/data_processing.py index 712643c..bc3d9b1 100644 --- a/edge/app/usecases/data_processing.py +++ b/edge/app/usecases/data_processing.py @@ -13,3 +13,11 @@ def process_agent_data( processed_data_batch (ProcessedAgentData): Processed data containing the classified state of the road surface and agent data. """ # Implement it + + if not hasattr(agent_data, 'user_id') or agent_data.user_id is None: + agent_data.user_id = 1 + + return ProcessedAgentData( + road_state="normal", + agent_data=agent_data + ) diff --git a/edge/config.py b/edge/config.py index b92d0c3..ee6efa3 100644 --- a/edge/config.py +++ b/edge/config.py @@ -16,9 +16,12 @@ MQTT_TOPIC = os.environ.get("MQTT_TOPIC") or "agent_data_topic" # Configuration for hub MQTT HUB_MQTT_BROKER_HOST = os.environ.get("HUB_MQTT_BROKER_HOST") or "localhost" HUB_MQTT_BROKER_PORT = try_parse_int(os.environ.get("HUB_MQTT_BROKER_PORT")) or 1883 -HUB_MQTT_TOPIC = os.environ.get("HUB_MQTT_TOPIC") or "processed_agent_data_topic" +HUB_MQTT_TOPIC = os.environ.get("HUB_MQTT_TOPIC") or "processed_data_topic" # Configuration for the Hub HUB_HOST = os.environ.get("HUB_HOST") or "localhost" -HUB_PORT = try_parse_int(os.environ.get("HUB_PORT")) or 12000 +HUB_PORT = try_parse_int(os.environ.get("HUB_PORT")) or 8000 HUB_URL = f"http://{HUB_HOST}:{HUB_PORT}" + +# For choosing type of connection +HUB_CONNECTION_TYPE = os.environ.get("HUB_CONNECTION_TYPE") or "mqtt" \ No newline at end of file diff --git a/edge/main.py b/edge/main.py index b2166a2..4c38175 100644 --- a/edge/main.py +++ b/edge/main.py @@ -1,4 +1,5 @@ import logging +import os from app.adapters.agent_mqtt_adapter import AgentMQTTAdapter from app.adapters.hub_http_adapter import HubHttpAdapter from app.adapters.hub_mqtt_adapter import HubMqttAdapter @@ -10,42 +11,54 @@ from config import ( HUB_MQTT_BROKER_HOST, HUB_MQTT_BROKER_PORT, HUB_MQTT_TOPIC, + HUB_CONNECTION_TYPE, ) if __name__ == "__main__": # Configure logging settings logging.basicConfig( - level=logging.INFO, # Set the log level to INFO (you can use logging.DEBUG for more detailed logs) + level=logging.INFO, format="[%(asctime)s] [%(levelname)s] [%(module)s] %(message)s", handlers=[ - logging.StreamHandler(), # Output log messages to the console - logging.FileHandler("app.log"), # Save log messages to a file + logging.StreamHandler(), + logging.FileHandler("app.log"), ], ) - # Create an instance of the StoreApiAdapter using the configuration - # hub_adapter = HubHttpAdapter( - # api_base_url=HUB_URL, - # ) - hub_adapter = HubMqttAdapter( - broker=HUB_MQTT_BROKER_HOST, - port=HUB_MQTT_BROKER_PORT, - topic=HUB_MQTT_TOPIC, - ) - # Create an instance of the AgentMQTTAdapter using the configuration + + # Logic to select the adapter based on configuration (SCRUM-93 & SCRUM-94) + # This allows easy switching between HTTP and MQTT protocols + if HUB_CONNECTION_TYPE.lower() == "http": + logging.info("Initializing HubHttpAdapter (SCRUM-93 integration)") + hub_adapter = HubHttpAdapter( + api_base_url=HUB_URL, + ) + else: + logging.info("Initializing HubMqttAdapter (SCRUM-94 integration)") + hub_adapter = HubMqttAdapter( + broker=HUB_MQTT_BROKER_HOST, + port=HUB_MQTT_BROKER_PORT, + topic=HUB_MQTT_TOPIC, + ) + + # Create an instance of the AgentMQTTAdapter using the selected hub adapter + # This adapter acts as a bridge between the Agent and the Hub agent_adapter = AgentMQTTAdapter( broker_host=MQTT_BROKER_HOST, broker_port=MQTT_BROKER_PORT, topic=MQTT_TOPIC, hub_gateway=hub_adapter, ) + try: - # Connect to the MQTT broker and start listening for messages + logging.info(f"Starting Edge module. Connecting to Agent Broker at {MQTT_BROKER_HOST}:{MQTT_BROKER_PORT}") + # Connect to the MQTT broker and start listening for messages from Agent agent_adapter.connect() agent_adapter.start() - # Keep the system running indefinitely (you can add other logic as needed) + + # Keep the system running indefinitely to process incoming data streams while True: pass except KeyboardInterrupt: # Stop the MQTT adapter and exit gracefully if interrupted by the user agent_adapter.stop() - logging.info("System stopped.") + logging.info("System stopped.") \ No newline at end of file From b10aec1020d402dbf7822aa6873aac34c2335f3b Mon Sep 17 00:00:00 2001 From: esk4nz Date: Mon, 23 Mar 2026 22:57:15 +0200 Subject: [PATCH 02/12] SCRUM-80 Changed print to logging in agent main --- agent/src/main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/agent/src/main.py b/agent/src/main.py index 65380af..db81260 100644 --- a/agent/src/main.py +++ b/agent/src/main.py @@ -1,6 +1,7 @@ from paho.mqtt import client as mqtt_client from schema.aggregated_data_schema import AggregatedDataSchema from file_datasource import FileDatasource +import logging import config @@ -28,7 +29,7 @@ def publish(client, topic, datasource): data = datasource.read() msg = AggregatedDataSchema().dumps(data) result = client.publish(topic, msg) - print(f"Published to {topic}: {msg[:50]}...") + logging.info(f"Published to {topic}: {msg[:50]}...") status = result[0] if status != 0: print(f"Failed to send message to topic {topic}") From ad70519f47fb02360620f8c775916044d55389ad Mon Sep 17 00:00:00 2001 From: esk4nz Date: Mon, 23 Mar 2026 23:00:19 +0200 Subject: [PATCH 03/12] SCRUM-80 Removed manual user_id fallback in data processing --- edge/app/usecases/data_processing.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/edge/app/usecases/data_processing.py b/edge/app/usecases/data_processing.py index bc3d9b1..e4bb712 100644 --- a/edge/app/usecases/data_processing.py +++ b/edge/app/usecases/data_processing.py @@ -13,10 +13,6 @@ def process_agent_data( processed_data_batch (ProcessedAgentData): Processed data containing the classified state of the road surface and agent data. """ # Implement it - - if not hasattr(agent_data, 'user_id') or agent_data.user_id is None: - agent_data.user_id = 1 - return ProcessedAgentData( road_state="normal", agent_data=agent_data From e8ff1c6cbd193c05b1a1064782db8b113af0d58d Mon Sep 17 00:00:00 2001 From: esk4nz Date: Mon, 23 Mar 2026 23:28:17 +0200 Subject: [PATCH 04/12] Replaced busy-wait loop with threading.Event to fix 100% CPU load --- edge/main.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/edge/main.py b/edge/main.py index 4c38175..22a8f23 100644 --- a/edge/main.py +++ b/edge/main.py @@ -3,6 +3,7 @@ import os from app.adapters.agent_mqtt_adapter import AgentMQTTAdapter from app.adapters.hub_http_adapter import HubHttpAdapter from app.adapters.hub_mqtt_adapter import HubMqttAdapter +from threading import Event from config import ( MQTT_BROKER_HOST, MQTT_BROKER_PORT, @@ -25,6 +26,9 @@ if __name__ == "__main__": ], ) + # Initialize the stop event to prevent high CPU usage + stop_event = Event() + # Logic to select the adapter based on configuration (SCRUM-93 & SCRUM-94) # This allows easy switching between HTTP and MQTT protocols if HUB_CONNECTION_TYPE.lower() == "http": @@ -55,10 +59,14 @@ if __name__ == "__main__": agent_adapter.connect() agent_adapter.start() - # Keep the system running indefinitely to process incoming data streams - while True: - pass + logging.info("Edge module started successfully. Waiting for data...") + + # Block the main thread efficiently without consuming CPU cycles + stop_event.wait() + except KeyboardInterrupt: # Stop the MQTT adapter and exit gracefully if interrupted by the user + logging.info("Stop signal received. Shutting down...") agent_adapter.stop() + stop_event.set() # Release the event logging.info("System stopped.") \ No newline at end of file From b12bdc334c48a814c314930a00f4c5117c5718bd Mon Sep 17 00:00:00 2001 From: esk4nz Date: Mon, 23 Mar 2026 23:41:25 +0200 Subject: [PATCH 05/12] fix: improve logging clarity and ensure data delivery in AgentMQTTAdapter --- edge/app/adapters/agent_mqtt_adapter.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/edge/app/adapters/agent_mqtt_adapter.py b/edge/app/adapters/agent_mqtt_adapter.py index 2f4597d..cc03ce2 100644 --- a/edge/app/adapters/agent_mqtt_adapter.py +++ b/edge/app/adapters/agent_mqtt_adapter.py @@ -39,12 +39,13 @@ class AgentMQTTAdapter(AgentGateway): agent_data = AgentData.model_validate_json(payload, strict=True) # Process the received data (you can call a use case here if needed) processed_data = process_agent_data(agent_data) - # Store the agent_data in the database (you can send it to the data processing module) - if processed_data is not None: - if not self.hub_gateway.save_data(processed_data): - logging.error("Hub is not available") + # Attempt to send processed data to the Hub gateway + if self.hub_gateway.save_data(processed_data): + # Log successful transmission as INFO level + logging.info("Processed data successfully forwarded to the Hub.") else: - logging.info("Road is fine, no data sent to hub.") + # Log Hub unavailability or transmission failure as ERROR level + logging.error("Failed to send data: Hub gateway is unavailable.") except Exception as e: logging.info(f"Error processing MQTT message: {e}") From 1b42be264d2287dccd593957df971dc66f4a4f12 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 24 Mar 2026 13:37:33 +0200 Subject: [PATCH 06/12] [L4] Remove misleading batch_size parameter from AgentMQTTAdapter --- edge/app/adapters/agent_mqtt_adapter.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/edge/app/adapters/agent_mqtt_adapter.py b/edge/app/adapters/agent_mqtt_adapter.py index cc03ce2..6b1f845 100644 --- a/edge/app/adapters/agent_mqtt_adapter.py +++ b/edge/app/adapters/agent_mqtt_adapter.py @@ -13,9 +13,7 @@ class AgentMQTTAdapter(AgentGateway): broker_port, topic, hub_gateway: HubGateway, - batch_size=10, ): - self.batch_size = batch_size # MQTT self.broker_host = broker_host self.broker_port = broker_port From a8e50d0386f2f73ef5ef2363bf8925b715fa4b6a Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 24 Mar 2026 13:58:32 +0200 Subject: [PATCH 07/12] [L4] Remove excessive library import and clean up edge codebase --- edge/app/adapters/agent_mqtt_adapter.py | 26 ++----------------------- edge/app/interfaces/agent_gateway.py | 11 ++--------- edge/main.py | 23 ++++++---------------- 3 files changed, 10 insertions(+), 50 deletions(-) diff --git a/edge/app/adapters/agent_mqtt_adapter.py b/edge/app/adapters/agent_mqtt_adapter.py index 6b1f845..a45f928 100644 --- a/edge/app/adapters/agent_mqtt_adapter.py +++ b/edge/app/adapters/agent_mqtt_adapter.py @@ -52,27 +52,5 @@ class AgentMQTTAdapter(AgentGateway): self.client.on_message = self.on_message self.client.connect(self.broker_host, self.broker_port, 60) - def start(self): - self.client.loop_start() - - def stop(self): - self.client.loop_stop() - - -# Usage example: -if __name__ == "__main__": - broker_host = "localhost" - broker_port = 1883 - topic = "agent_data_topic" - # Assuming you have implemented the StoreGateway and passed it to the adapter - store_gateway = HubGateway() - adapter = AgentMQTTAdapter(broker_host, broker_port, topic, store_gateway) - adapter.connect() - adapter.start() - try: - # Keep the adapter running in the background - while True: - pass - except KeyboardInterrupt: - adapter.stop() - logging.info("Adapter stopped.") + def loop_forever(self): + self.client.loop_forever() diff --git a/edge/app/interfaces/agent_gateway.py b/edge/app/interfaces/agent_gateway.py index 0e154f7..b868ab5 100644 --- a/edge/app/interfaces/agent_gateway.py +++ b/edge/app/interfaces/agent_gateway.py @@ -26,15 +26,8 @@ class AgentGateway(ABC): pass @abstractmethod - def start(self): + def loop_forever(self): """ - Method to start listening for messages from the agent. - """ - pass - - @abstractmethod - def stop(self): - """ - Method to stop the agent gateway and clean up resources. + Method to await for new messages. """ pass diff --git a/edge/main.py b/edge/main.py index 22a8f23..3e26330 100644 --- a/edge/main.py +++ b/edge/main.py @@ -3,7 +3,6 @@ import os from app.adapters.agent_mqtt_adapter import AgentMQTTAdapter from app.adapters.hub_http_adapter import HubHttpAdapter from app.adapters.hub_mqtt_adapter import HubMqttAdapter -from threading import Event from config import ( MQTT_BROKER_HOST, MQTT_BROKER_PORT, @@ -26,9 +25,6 @@ if __name__ == "__main__": ], ) - # Initialize the stop event to prevent high CPU usage - stop_event = Event() - # Logic to select the adapter based on configuration (SCRUM-93 & SCRUM-94) # This allows easy switching between HTTP and MQTT protocols if HUB_CONNECTION_TYPE.lower() == "http": @@ -54,19 +50,12 @@ if __name__ == "__main__": ) try: - logging.info(f"Starting Edge module. Connecting to Agent Broker at {MQTT_BROKER_HOST}:{MQTT_BROKER_PORT}") - # Connect to the MQTT broker and start listening for messages from Agent + logging.info(f"Connecting to MQTT broker at {MQTT_BROKER_HOST}:{MQTT_BROKER_PORT}") agent_adapter.connect() - agent_adapter.start() - - logging.info("Edge module started successfully. Waiting for data...") - - # Block the main thread efficiently without consuming CPU cycles - stop_event.wait() + logging.info("Broker connection success. Waiting for data...") + agent_adapter.loop_forever() except KeyboardInterrupt: - # Stop the MQTT adapter and exit gracefully if interrupted by the user - logging.info("Stop signal received. Shutting down...") - agent_adapter.stop() - stop_event.set() # Release the event - logging.info("System stopped.") \ No newline at end of file + logging.info("Interrupt signal received. Shutting down...") + agent_adapter.disconnect() + logging.info("Disconnected from MQTT broker.") From 5e890d4f03d4df0ef614284848fdf80400ec4554 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 24 Mar 2026 14:02:03 +0200 Subject: [PATCH 08/12] [L4] Remove obvious single code line comments to reduce risk of misleading comments in the future --- edge/app/adapters/agent_mqtt_adapter.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/edge/app/adapters/agent_mqtt_adapter.py b/edge/app/adapters/agent_mqtt_adapter.py index a45f928..9235fda 100644 --- a/edge/app/adapters/agent_mqtt_adapter.py +++ b/edge/app/adapters/agent_mqtt_adapter.py @@ -33,16 +33,13 @@ class AgentMQTTAdapter(AgentGateway): """Processing agent data and sent it to hub gateway""" try: payload: str = msg.payload.decode("utf-8") - # Create AgentData instance with the received data + agent_data = AgentData.model_validate_json(payload, strict=True) - # Process the received data (you can call a use case here if needed) processed_data = process_agent_data(agent_data) - # Attempt to send processed data to the Hub gateway + if self.hub_gateway.save_data(processed_data): - # Log successful transmission as INFO level logging.info("Processed data successfully forwarded to the Hub.") else: - # Log Hub unavailability or transmission failure as ERROR level logging.error("Failed to send data: Hub gateway is unavailable.") except Exception as e: logging.info(f"Error processing MQTT message: {e}") From d1b6c0eed19e591edb76befab91c00e257b3f6fa Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 24 Mar 2026 14:03:29 +0200 Subject: [PATCH 09/12] [L4] Fix logging level on error message --- edge/app/adapters/agent_mqtt_adapter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edge/app/adapters/agent_mqtt_adapter.py b/edge/app/adapters/agent_mqtt_adapter.py index 9235fda..76c0c0a 100644 --- a/edge/app/adapters/agent_mqtt_adapter.py +++ b/edge/app/adapters/agent_mqtt_adapter.py @@ -42,7 +42,7 @@ class AgentMQTTAdapter(AgentGateway): else: logging.error("Failed to send data: Hub gateway is unavailable.") except Exception as e: - logging.info(f"Error processing MQTT message: {e}") + logging.error(f"Error processing MQTT message: {e}") def connect(self): self.client.on_connect = self.on_connect From 00b037a2436d895583400743ff0a98bd883e5d2b Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 24 Mar 2026 14:07:49 +0200 Subject: [PATCH 10/12] [L4] Remove uncessecary environment variable left over after print -> logging usage switch --- docker-compose.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index af411cd..984d332 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -38,7 +38,6 @@ services: depends_on: - mqtt environment: - PYTHONUNBUFFERED: 1 MQTT_BROKER_HOST: "mqtt" MQTT_BROKER_PORT: 1883 MQTT_TOPIC: "agent_data_topic" From a8a0ef5e15cf2a6faf1f219f8dbacb6d16ad4f09 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 24 Mar 2026 14:09:53 +0200 Subject: [PATCH 11/12] [L4] Remove unused import --- edge/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/edge/main.py b/edge/main.py index 3e26330..198e7c9 100644 --- a/edge/main.py +++ b/edge/main.py @@ -1,5 +1,4 @@ import logging -import os from app.adapters.agent_mqtt_adapter import AgentMQTTAdapter from app.adapters.hub_http_adapter import HubHttpAdapter from app.adapters.hub_mqtt_adapter import HubMqttAdapter From b34e38512858dc9f693b1b68e4007a07e46545a4 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 24 Mar 2026 14:42:13 +0200 Subject: [PATCH 12/12] [L4] Remove irrelevant environment variables --- docker-compose.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 984d332..26f0276 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -56,7 +56,6 @@ services: container_name: postgres_db restart: always environment: - PYTHONUNBUFFERED: 1 POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: test_db @@ -73,7 +72,6 @@ services: image: dpage/pgadmin4 restart: always environment: - PYTHONUNBUFFERED: 1 PGADMIN_DEFAULT_EMAIL: admin@admin.com PGADMIN_DEFAULT_PASSWORD: root volumes: