diff --git a/build/ci/.build-container.yml b/build/ci/.build-container.yml
index 3dcaaeec1eb75beeabfe3ef5f38d67fd304b280e..51e208283d1936345dddc03ed102a17fe7c1e63d 100644
--- a/build/ci/.build-container.yml
+++ b/build/ci/.build-container.yml
@@ -6,7 +6,7 @@ variables:
   DOCKER_TLS_CERTDIR: "/certs"
   DOCKER_IMAGE_SHA: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
 
-.deploy: &deploy
+.build: &build
   before_script:
     - echo "override global before script"
   image: docker:19.03.12
@@ -18,54 +18,31 @@ variables:
       docker build \
         --build-arg GITLAB_USER=$GO_MODULES_USER \
         --build-arg GITLAB_TOKEN=$GO_MODULES_ACCESS_TOKEN \
-        -t $DOCKER_IMAGE_SHA .
+        -t $DOCKER_IMAGE_SHA $PATH
     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
     - docker tag $DOCKER_IMAGE_SHA $TAG
     - docker push $TAG
 
-deploy:develop:
+build:develop:
   variables:
     TAG: $CI_REGISTRY_IMAGE:develop
-    HOOK: $PORTAINER_HOOK_DEVELOP
+    PATH: build/dockerfiles/staging
   rules:
     - if: $CI_COMMIT_BRANCH == "develop"
-  <<: *deploy
+  <<: *build
 
-deploy:latest:
+build:merge-request:
   variables:
-    TAG: $CI_REGISTRY_IMAGE:latest
-    HOOK: $PORTAINER_HOOK_LATEST
-  rules:
-    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
-  <<: *deploy
-
-.deploy:mr: &deploy-mr
-  before_script:
-    - echo "override global before script"
-  image: docker:19.03.12
-  stage: build
-  tags:
-    - dind
-  script:
-    - >
-      docker build \
-        --build-arg GITLAB_USER=$GO_MODULES_USER \
-        --build-arg GITLAB_TOKEN=$GO_MODULES_ACCESS_TOKEN \
-        -t $DOCKER_IMAGE_SHA .
-    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
-    - docker tag $DOCKER_IMAGE_SHA $TAG
-    - docker push $TAG
-
-deploy:merge-request:master:
-  variables:
-    TAG: $CI_REGISTRY_IMAGE:mr-master
+    TAG: $CI_REGISTRY_IMAGE:merge-request
+    PATH: build/dockerfiles/staging
   rules:
-    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
-  <<: *deploy-mr
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+  <<: *build
 
-deploy:merge-mr:develop:
+build:latest:
   variables:
-    TAG: $CI_REGISTRY_IMAGE:mr-develop
+    TAG: $CI_REGISTRY_IMAGE:latest
+    PATH: build/dockerfiles/production
   rules:
-    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop'
-  <<: *deploy-mr
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+  <<: *build
\ No newline at end of file
diff --git a/build/ci/.terraform-ci.yml b/build/ci/.terraform-ci.yml
index 5a025809c65770b8eb17328c796af1155eaa31db..014c4502bcfe6126d5b6476f916d2eefc23953dc 100644
--- a/build/ci/.terraform-ci.yml
+++ b/build/ci/.terraform-ci.yml
@@ -21,12 +21,9 @@ cache:
     - export TF_VAR_tls_cert=${DOCKER_TLS_CERT}
     - export TF_VAR_tls_ca_cert=${DOCKER_TLS_CA}
   rules:
-    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop')
       variables:
-        TF_VAR_container_tag: $CI_REGISTRY_IMAGE:mr-master
-    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop'
-      variables:
-        TF_VAR_container_tag: $CI_REGISTRY_IMAGE:mr-develop
+        TF_VAR_container_tag: $CI_REGISTRY_IMAGE:merge-request
     - if: $CI_COMMIT_BRANCH == "integration-test"
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH