diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..191381ee74dec49c89f99a62d055cb1058ba0de9
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+.git
\ No newline at end of file
diff --git a/build/fpm/Dockerfile b/build/fpm/Dockerfile
index 8b404cf3e197694f9e7f082badcb821e4ddaa673..fd035e3a057a8075ea7528e06feb8529a7db3ea4 100644
--- a/build/fpm/Dockerfile
+++ b/build/fpm/Dockerfile
@@ -1,7 +1,7 @@
-FROM php:8.1-fpm as composer
+FROM php:7.4-fpm as composer
 
 # Add Composer installation to image
-ADD installcomposer.sh /usr/bin/installcomposer
+ADD build/fpm/installcomposer.sh /usr/bin/installcomposer
 RUN /usr/bin/installcomposer && \
     rm /usr/bin/installcomposer
 
@@ -27,16 +27,30 @@ RUN apt update && apt install -y \
     docker-php-ext-enable redis && \
     docker-php-ext-enable --ini-name=xdebug.ini xdebug
 
+# Add working dir for the code base
+RUN mkdir -p /metager/metager_app && \
+    chown -R metager:metager /metager
+WORKDIR /metager/metager_app
+
+# Add composer Cache Directory
+RUN mkdir /composer_cache && \
+    chown metager:metager /composer_cache
+VOLUME [ "/composer_cache" ]
+# Add composer vendor Directory
+RUN mkdir -p /metager/metager_app/vendor && \
+    chown metager:metager /metager/metager_app/vendor
+VOLUME [ "metager/metager_app/vendor" ]
+
 # Add General Customizations to php.ini
-ADD configuration/php/custom.ini $PHP_INI_DIR/conf.d/custom.ini
+ADD build/fpm/configuration/php/custom.ini $PHP_INI_DIR/conf.d/custom.ini
 
 # Configure PHP (use development configuration as base)
 RUN mv $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
 # Add Development Customizations
-ADD configuration/php/development.ini $PHP_INI_DIR/conf.d/development.ini
+ADD build/fpm/configuration/php/development.ini $PHP_INI_DIR/conf.d/development.ini
 
 # Configure FPM
-ADD configuration/fpm/www_01_development.conf $PHP_INI_DIR/../php-fpm.d/www_01.conf
+ADD build/fpm/configuration/fpm/www_01_development.conf $PHP_INI_DIR/../php-fpm.d/www_01.conf
 
 USER metager:metager
 ENTRYPOINT [ "/usr/local/sbin/php-fpm" ]
@@ -54,6 +68,6 @@ RUN mv $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini
 # Remove development php.ini
 RUN rm $PHP_INI_DIR/conf.d/development.ini
 # Add production php.ini
-ADD configuration/php/production.ini $PHP_INI_DIR/conf.d/production.ini
+ADD build/fpm/configuration/php/production.ini $PHP_INI_DIR/conf.d/production.ini
 
 USER metager:metager
\ No newline at end of file
diff --git a/build/fpm/configuration/fpm/www_01_development.conf b/build/fpm/configuration/fpm/www_01_development.conf
index 546659f148ace3212e3e2eb9b9257ccf729d649b..6acb40d358a09b2e852df4a5466345fd5e0ebea5 100644
--- a/build/fpm/configuration/fpm/www_01_development.conf
+++ b/build/fpm/configuration/fpm/www_01_development.conf
@@ -1,4 +1,4 @@
 ; This File holds custom www pool configurations for development deployments
 [www]
 ; Do not limit request length
-request_terminate_timeout = 0
\ No newline at end of file
+request_terminate_timeout = 0
diff --git a/build/nginx/Dockerfile b/build/nginx/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..8068cd8257e6b965dce46b74cc0892719db940d7
--- /dev/null
+++ b/build/nginx/Dockerfile
@@ -0,0 +1,28 @@
+FROM nginx:1.21.6 as setup
+
+ARG UID=1000
+ARG GID=1000
+ARG USER_HOME=/metager
+
+# Create User
+RUN groupadd -g ${GID} metager && \
+    useradd -b $USER_HOME -g ${GID} -u ${UID} -M -s /bin/bash metager && \
+    mkdir -p $USER_HOME && \
+    mkdir ${USER_HOME}/nginx_tmp && \
+    mkdir ${USER_HOME}/metager_app && \
+    chown -R ${UID}:${GID} $USER_HOME
+
+WORKDIR ${USER_HOME}/metager_app
+
+FROM setup as development
+
+ADD build/nginx/configuration/nginx.conf /etc/nginx/nginx.conf
+ADD build/nginx/configuration/nginx-default-dev.conf /etc/nginx/conf.d/default.conf
+
+USER metager:metager
+
+FROM development as production
+
+USER root:root
+ADD build/nginx/configuration/nginx-default.conf /etc/nginx/conf.d/default.conf
+USER metager:metager
\ No newline at end of file
diff --git a/metager/config/nginx-default-dev.conf b/build/nginx/configuration/nginx-default-dev.conf
similarity index 91%
rename from metager/config/nginx-default-dev.conf
rename to build/nginx/configuration/nginx-default-dev.conf
index 7baa09880c8ef72e347c8b542e081adcc1275d8e..9cbb21e1e299f6106ab1d9d4cdeb43b6ace0fe9c 100644
--- a/metager/config/nginx-default-dev.conf
+++ b/build/nginx/configuration/nginx-default-dev.conf
@@ -1,7 +1,7 @@
 server {
     listen       8080;
     server_name  localhost;
-    root   /html/public;
+    root   /metager/metager_app/public;
     index  index.php index.html index.htm;
 
     client_max_body_size 30M;
@@ -13,7 +13,7 @@ server {
     location ~ \.php$ {
         try_files $uri /index.php =404;
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
-        fastcgi_pass phpfpm:9000;
+        fastcgi_pass fpm:9000;
         fastcgi_index index.php;
         fastcgi_read_timeout 900;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
diff --git a/metager/config/nginx-default.conf b/build/nginx/configuration/nginx-default.conf
similarity index 87%
rename from metager/config/nginx-default.conf
rename to build/nginx/configuration/nginx-default.conf
index b676c8da08f6d6767d39dc77b651ebb295fd9139..3f027d68c9235a53156c3b4cae54fa8b3d221268 100644
--- a/metager/config/nginx-default.conf
+++ b/build/nginx/configuration/nginx-default.conf
@@ -1,9 +1,10 @@
 server {
     listen       8080;
     server_name  localhost;
-    root   /html/public;
+    root   /metager/nginx_app/public;
     index  index.php index.html index.htm;
 
+    server_tokens off;
     client_max_body_size 30M;
 
     location / {
@@ -13,7 +14,7 @@ server {
     location ~ \.php$ {
         try_files $uri /index.php =404;
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
-        fastcgi_pass phpfpm:9000;
+        fastcgi_pass localhost:9000;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
diff --git a/metager/config/nginx.conf b/build/nginx/configuration/nginx.conf
similarity index 66%
rename from metager/config/nginx.conf
rename to build/nginx/configuration/nginx.conf
index 3f8cb5d05aa1a9b8e3f4d0ce63a7d1920ff318e1..cdffe4bb1704da78e06dc3c1104450a1b9a129f1 100644
--- a/metager/config/nginx.conf
+++ b/build/nginx/configuration/nginx.conf
@@ -1,10 +1,7 @@
-#user  www-data;
 worker_processes  auto;
 
 error_log  /dev/stdout warn;
-# pid        /run/nginx.pid;
-
-daemon off;
+pid /metager/nginx_tmp/nginx.pid;
 
 events {
     worker_connections  1024;
@@ -12,6 +9,13 @@ events {
 
 
 http {
+    client_body_temp_path /metager/nginx_tmp/client_temp;
+    proxy_temp_path       /metager/nginx_tmp/proxy_temp_path;
+    fastcgi_temp_path     /metager/nginx_tmp/fastcgi_temp;
+    uwsgi_temp_path       /metager/nginx_tmp/uwsgi_temp;
+    scgi_temp_path        /metager/nginx_tmp/scgi_temp;
+
+
     include       /etc/nginx/mime.types;
     default_type  application/octet-stream;
 
@@ -22,8 +26,6 @@ http {
     access_log  /dev/null  main;
 
     sendfile        on;
-    #tcp_nopush     on;
-
     client_max_body_size 30M;
 
     keepalive_timeout  65;
diff --git a/docker-compose.yml b/docker-compose.yml
index 332cbd5fe34699f547bf295b695b73bbc3021381..c432880fae5b83808cab45554a1a7ded122b4afe 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,11 +1,38 @@
 version: "3"
 
 # Volumes
-
+volumes:
+  vendor: {}
+  composer_cache: {}
 # Services
 services:
   fpm:
     build:
-      context: build/fpm
-      dockerfile: Dockerfile
-      target: ${APP_ENV}
\ No newline at end of file
+      &fpm_build
+      context: ./
+      dockerfile: build/fpm/Dockerfile
+      target: ${APP_ENV}
+    volumes:
+      - ./metager:/metager/metager_app
+      - vendor:/metager/metager_app/vendor
+  composer:
+    build:
+      <<: *fpm_build
+    entrypoint: /usr/bin/composer
+    command: install
+    environment:
+      - COMPOSER_HOME=/composer_cache
+    volumes:
+      - ./metager:/metager/metager_app
+      - vendor:/metager/metager_app/vendor
+      - composer_cache:/composer_cache
+  nginx:
+    build:
+      context: ./
+      dockerfile: build/nginx/Dockerfile
+      target: ${APP_ENV}
+    volumes:
+      - ./metager/public:/metager/metager_app/public
+    ports:
+      - 8080:8080
+  
\ No newline at end of file