diff --git a/src/dbscanserving/Dockerfile b/src/dbscanserving/Dockerfile
index 5bbf0d215d7eb87f391f8115efe0c92e519dbf46..81e3fb28a059faf92f793aa5bd76d1a744e65d9b 100644
--- a/src/dbscanserving/Dockerfile
+++ b/src/dbscanserving/Dockerfile
@@ -31,9 +31,8 @@ RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \
 RUN groupadd -r teraflow && useradd -u 1001 --no-log-init -r -m -g teraflow teraflow
 USER teraflow
 
-RUN mkdir -p /home/teraflow/controller/common
-
 # set working directory
+RUN mkdir -p /home/teraflow/controller/common
 WORKDIR /home/teraflow/controller
 
 # Get Python packages per module
@@ -58,7 +57,9 @@ COPY --chown=teraflow:teraflow src/common/. ./
 RUN rm -rf proto
 
 # Create proto sub-folder, copy .proto files, and generate Python code
+RUN mkdir -p /home/teraflow/controller/common/proto
 WORKDIR /home/teraflow/controller/common/proto
+RUN touch __init__.py
 COPY --chown=teraflow:teraflow proto/*.proto ./
 RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto
 RUN rm *.proto
@@ -77,5 +78,5 @@ RUN python3 -m pip install -r dbscanserving/requirements.txt
 # Add component files into working directory
 COPY --chown=teraflow:teraflow ./src/dbscanserving/. dbscanserving
 
-# Start dbscanserving service
+# Start the service
 ENTRYPOINT ["python", "-m", "dbscanserving.service"]
diff --git a/src/opticalattackdetector/Dockerfile b/src/opticalattackdetector/Dockerfile
index 6607a22b72a311bad90197d430980d3977e8531f..fd903a616395617fbbe312b5fca8303966fc6053 100644
--- a/src/opticalattackdetector/Dockerfile
+++ b/src/opticalattackdetector/Dockerfile
@@ -55,8 +55,10 @@ RUN python3 -m pip install -r common_requirements.txt
 # Add common files into working directory
 WORKDIR /home/teraflow/controller/common
 COPY --chown=teraflow:teraflow src/common/. ./
+RUN rm -rf proto
 
 # Create proto sub-folder, copy .proto files, and generate Python code
+RUN mkdir -p /home/teraflow/controller/common/proto
 WORKDIR /home/teraflow/controller/common/proto
 RUN touch __init__.py
 COPY --chown=teraflow:teraflow proto/*.proto ./
@@ -69,18 +71,18 @@ RUN mkdir -p /home/teraflow/controller/opticalattackdetector
 WORKDIR /home/teraflow/controller
 
 # Get Python packages per module
-COPY --chown=teraflow:teraflow src/opticalattackdetector/requirements.in opticalattackdetector/requirements.in
+COPY --chown=teraflow:teraflow ./src/opticalattackdetector/requirements.in opticalattackdetector/requirements.in
 # consider common and specific requirements to avoid inconsistencies with dependencies
 RUN pip-compile --quiet --output-file=opticalattackdetector/requirements.txt opticalattackdetector/requirements.in common_requirements.in
 RUN python3 -m pip install -r opticalattackdetector/requirements.txt
 
-# Add files into working directory
-COPY --chown=teraflow:teraflow src/context/. context
-COPY --chown=teraflow:teraflow src/service/. service
-COPY --chown=teraflow:teraflow src/monitoring/. monitoring
-COPY --chown=teraflow:teraflow src/dbscanserving/. dbscanserving
-COPY --chown=teraflow:teraflow src/opticalattackmitigator/. opticalattackmitigator
-COPY --chown=teraflow:teraflow src/opticalattackdetector/. opticalattackdetector
+# Add component files into working directory
+COPY --chown=teraflow:teraflow ./src/context/. context
+COPY --chown=teraflow:teraflow ./src/service/. service
+COPY --chown=teraflow:teraflow ./src/monitoring/. monitoring
+COPY --chown=teraflow:teraflow ./src/dbscanserving/. dbscanserving
+COPY --chown=teraflow:teraflow ./src/opticalattackmitigator/. opticalattackmitigator
+COPY --chown=teraflow:teraflow ./src/opticalattackdetector/. opticalattackdetector
 
-# Start opticalattackdetector service
+# Start the service
 ENTRYPOINT ["python", "-m", "opticalattackdetector.service"]
diff --git a/src/opticalattackmanager/Dockerfile b/src/opticalattackmanager/Dockerfile
index d97a5c6f38d42205a97404a4685c4a1cca157f8d..9920d6cefbb4ffc87558ae562cfb4fcee365930f 100644
--- a/src/opticalattackmanager/Dockerfile
+++ b/src/opticalattackmanager/Dockerfile
@@ -16,11 +16,9 @@ FROM python:3.9-slim
 
 # Install dependencies
 RUN apt-get --yes --quiet --quiet update && \
-    apt-get --yes --quiet --quiet install wget g++ nano && \
+    apt-get --yes --quiet --quiet install wget g++ && \
     rm -rf /var/lib/apt/lists/*
 
-# TODO: remove nano from installation
-
 # Set Python to show logs as they occur
 ENV PYTHONUNBUFFERED=0
 ENV PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
@@ -53,7 +51,7 @@ RUN python3 -m pip install --upgrade pip-tools
 COPY --chown=teraflow:teraflow common_requirements.in common_requirements.in
 COPY --chown=teraflow:teraflow src/opticalattackmanager/requirements.in opticalattackmanager/requirements.in
 RUN sed -i '/protobuf/d' common_requirements.in && sed -i '/grpc/d' common_requirements.in
-RUN pip-compile --output-file=common_requirements.txt common_requirements.in opticalattackmanager/requirements.in
+RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in opticalattackmanager/requirements.in
 RUN python3 -m pip install -r common_requirements.txt
 
 # Get Python packages per module
@@ -64,11 +62,12 @@ RUN python3 -m pip install -r common_requirements.txt
 # Add common files into working directory
 WORKDIR /home/teraflow/controller/common
 COPY --chown=teraflow:teraflow src/common/. ./
+RUN rm -rf proto
 
 # Create proto sub-folder, copy .proto files, and generate Python code
+RUN mkdir -p /home/teraflow/controller/common/proto/asyncio
 WORKDIR /home/teraflow/controller/common/proto
 RUN touch __init__.py
-RUN mkdir -p /home/teraflow/controller/common/proto/asyncio
 RUN touch asyncio/__init__.py
 COPY --chown=teraflow:teraflow proto/*.proto ./
 RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto
@@ -81,13 +80,13 @@ RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \;
 RUN mkdir -p /home/teraflow/controller/opticalattackmanager
 WORKDIR /home/teraflow/controller
 
-# Add files into working directory
-COPY --chown=teraflow:teraflow src/context/. context
-COPY --chown=teraflow:teraflow src/monitoring/. monitoring
-COPY --chown=teraflow:teraflow src/dbscanserving/. dbscanserving
-COPY --chown=teraflow:teraflow src/opticalattackdetector/. opticalattackdetector
-COPY --chown=teraflow:teraflow src/opticalattackmitigator/. opticalattackmitigator
-COPY --chown=teraflow:teraflow src/opticalattackmanager/. opticalattackmanager
+# Add component files into working directory
+COPY --chown=teraflow:teraflow ./src/context/. context
+COPY --chown=teraflow:teraflow ./src/monitoring/. monitoring
+COPY --chown=teraflow:teraflow ./src/dbscanserving/. dbscanserving
+COPY --chown=teraflow:teraflow ./src/opticalattackdetector/. opticalattackdetector
+COPY --chown=teraflow:teraflow ./src/opticalattackmitigator/. opticalattackmitigator
+COPY --chown=teraflow:teraflow ./src/opticalattackmanager/. opticalattackmanager
 
-# Start opticalattackmanager service
+# Start the service
 ENTRYPOINT ["python", "-m", "opticalattackmanager.service"]
diff --git a/src/opticalattackmitigator/Dockerfile b/src/opticalattackmitigator/Dockerfile
index 2efb2f4d25d301b47fb9ac87faf6bbc6366f8d48..e364cbee121c38570c8158946486ec38dcd8b12d 100644
--- a/src/opticalattackmitigator/Dockerfile
+++ b/src/opticalattackmitigator/Dockerfile
@@ -54,8 +54,10 @@ RUN python3 -m pip install -r common_requirements.txt
 # Add common files into working directory
 WORKDIR /home/teraflow/controller/common
 COPY --chown=teraflow:teraflow src/common/. ./
+RUN rm -rf proto
 
 # Create proto sub-folder, copy .proto files, and generate Python code
+RUN mkdir -p /home/teraflow/controller/common/proto
 WORKDIR /home/teraflow/controller/common/proto
 RUN touch __init__.py
 COPY --chown=teraflow:teraflow proto/*.proto ./
@@ -68,13 +70,13 @@ RUN mkdir -p /home/teraflow/controller/opticalattackmitigator
 WORKDIR /home/teraflow/controller
 
 # Get Python packages per module
-COPY --chown=teraflow:teraflow src/opticalattackmitigator/requirements.in opticalattackmitigator/requirements.in
+COPY --chown=teraflow:teraflow ./src/opticalattackmitigator/requirements.in opticalattackmitigator/requirements.in
 # consider common and specific requirements to avoid inconsistencies with dependencies
 RUN pip-compile --quiet --output-file=opticalattackmitigator/requirements.txt opticalattackmitigator/requirements.in common_requirements.in
 RUN python3 -m pip install -r opticalattackmitigator/requirements.txt
 
-# Add files into working directory
-COPY --chown=teraflow:teraflow src/opticalattackmitigator/. opticalattackmitigator
+# Add component files into working directory
+COPY --chown=teraflow:teraflow ./src/opticalattackmitigator/. opticalattackmitigator
 
-# Start opticalattackmitigator service
+# Start the service
 ENTRYPOINT ["python", "-m", "opticalattackmitigator.service"]