diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ed9e9c7c49920298e382cf466d9d9a32a088243b..21e03d89159bee9125e71c09ef26c68e1495607a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,35 +2,54 @@ stages:
   - build
   - Config
   - deploy
-# TInstall the base Configuration.
-Configuration_base:
+
+# Build the ansible runner (You can Set a local gitlab runner)
+build:
   stage: build
+  image: docker:latest
   script:
-    - ansible-playbook -i inventory.ini main.yml --ask-vault-pass
+    - docker build -t ansible-container .
+
+# Install the base Configuration.
+Configuration_base:
+  stage: Config
+  image: docker:latest
+  script:
+    - docker build -t ansible-container .
+    - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/base.yml --ask-vault-pass
 # Upgrade packages.
 Upgrade:
-  stage: build
+  stage: Config
+  image: docker:latest
   script:
-    - ansible-playbook -i inventory.ini upgrade.yml --ask-vault-pass
+    - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/upgrade.yml --ask-vault-pass
 
 # Configure docker
 Configuration_docker:
   stage: Config
+  image: docker:latest
   script:
-    - ansible-playbook -i inventory.ini Config.yml --ask-vault-pass
+    - docker build -t ansible-container .
+    - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/docker.yml --ask-vault-pass
 # Configure nginx
 Configuration_nginx:
   stage: Config
+  image: docker:latest
   script:
-    - ansible-playbook -i inventory.ini nginx.yml --ask-vault-pass
+    - docker build -t ansible-container .
+    - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/nginx.yml --ask-vault-pass
 # Configure postgreSQL
 Configuration_postgreSQL:
   stage: Config
+  image: docker:latest
   script:
-    - ansible-playbook -i inventory.ini postgresql.yml --ask-vault-pass
-    
+    - docker build -t ansible-container .
+    - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/postgresql.yml --ask-vault-pass
+
 # Deploy the synapse app.
 Configuration_Synapse:
   stage: deploy
+  image: docker:latest
   script:
-    - ansible-playbook -i inventory.ini synapse.yml --ask-vault-pass
\ No newline at end of file
+    - docker build -t ansible-container .
+    - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/synapse.yml --ask-vault-pass
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..f0a035347e59db7829e6a90551a7da12eee73358
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,14 @@
+# Dockerfile
+
+# Use a base image with Python and pip installed
+FROM python:3
+
+# Install Ansible
+RUN pip install ansible
+
+# Copy your playbook and inventory file into the container
+COPY playbooks/* /ansible/*
+COPY inventory.ini /ansible/inventory.ini
+
+# Set the working directory
+WORKDIR /ansible
diff --git a/playbooks/nginx_install.yml b/playbooks/nginx.yml
similarity index 100%
rename from playbooks/nginx_install.yml
rename to playbooks/nginx.yml