diff --git a/.gitlab-industrial-ci-kinetic-no-rosinstall.yml b/.gitlab-industrial-ci-kinetic-no-rosinstall.yml
index 0ba4ce79e456ef20540a8e52b63ffd72ca1594c3..2b6d7995793d97efa7da9563501fab4580a6c75b 100644
--- a/.gitlab-industrial-ci-kinetic-no-rosinstall.yml
+++ b/.gitlab-industrial-ci-kinetic-no-rosinstall.yml
@@ -43,11 +43,20 @@ industrial_ci_kinetic_deploy:
   script:
     - .ci_config/gitlab.sh
     - cd $(mktemp -d)
-    - wget https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/deploy-image-build/deploy/Dockerfile
-    - wget https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/deploy-image-build/deploy/ros_entrypoint.bash
+    - wget https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/-/archive/master/gitlab_templates-master.zip
+    - unzip gitlab_templates-master.zip && cd gitlab_templates-master
+    - cd base
     - chmod a+x ros_entrypoint.bash
     - docker build -t ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME} .
     - docker push ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}
+    - cd ..
+    - cd dev
+    - docker build --build-arg APPLICATION_IMAGE=${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME} -t ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev .
+    - docker push ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev
+    - cd ..
+    - cd dev-vscode
+    - docker build --build-arg APPLICATION_DEV_IMAGE=${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev -t ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev-vscode .
+    - docker push ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev-vscode
   only:
     - tags
 
diff --git a/.gitlab-industrial-ci-kinetic-with-rosinstall.yml b/.gitlab-industrial-ci-kinetic-with-rosinstall.yml
index 07c725c862583991756eb2ddcb31f71a39c8e2f9..828840d1624f85bf800607e59c60d1c5190bc2c6 100644
--- a/.gitlab-industrial-ci-kinetic-with-rosinstall.yml
+++ b/.gitlab-industrial-ci-kinetic-with-rosinstall.yml
@@ -45,11 +45,20 @@ industrial_ci_kinetic_deploy:
   script:
     - .ci_config/gitlab.sh
     - cd $(mktemp -d)
-    - wget https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/deploy-image-build/deploy/Dockerfile
-    - wget https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/deploy-image-build/deploy/ros_entrypoint.bash
+    - wget https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/-/archive/master/gitlab_templates-master.zip
+    - unzip gitlab_templates-master.zip && cd gitlab_templates-master
+    - cd base
     - chmod a+x ros_entrypoint.bash
     - docker build -t ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME} .
     - docker push ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}
+    - cd ..
+    - cd dev
+    - docker build --build-arg APPLICATION_IMAGE=${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME} -t ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev .
+    - docker push ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev
+    - cd ..
+    - cd dev-vscode
+    - docker build --build-arg APPLICATION_DEV_IMAGE=${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev -t ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev-vscode .
+    - docker push ${ARTIFACT_DOCKER_URL}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-dev-vscode
   only:
     - tags
 
diff --git a/deploy/Dockerfile b/deploy/base/Dockerfile
similarity index 100%
rename from deploy/Dockerfile
rename to deploy/base/Dockerfile
diff --git a/deploy/ros_entrypoint.bash b/deploy/base/ros_entrypoint.bash
similarity index 100%
rename from deploy/ros_entrypoint.bash
rename to deploy/base/ros_entrypoint.bash
diff --git a/deploy/dev-vscode/Dockerfile b/deploy/dev-vscode/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..2b2c7a1b2e92292220613aeb2c261fd7dc213f38
--- /dev/null
+++ b/deploy/dev-vscode/Dockerfile
@@ -0,0 +1,18 @@
+ARG APPLICATION_DEV_IMAGE
+FROM ${APPLICATION_DEV_IMAGE}
+
+RUN apt-get update -qq && apt-get install -y -qq \
+  apt-transport-https
+
+RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg \
+  && mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg \
+  && sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
+
+RUN apt-get update -qq && apt-get install -y -qq \
+  code
+
+RUN echo "alias code='code --user-data-dir /root'" >> /root/.bashrc
+
+RUN code --user-data-dir /root \
+  --install-extension ajshort.ros \
+  --install-extension ms-vscode.cpptools
diff --git a/deploy/dev/Dockerfile b/deploy/dev/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..a3c08af50b1bfa7895b7ffb70f179d0b9ce208ea
--- /dev/null
+++ b/deploy/dev/Dockerfile
@@ -0,0 +1,5 @@
+ARG APPLICATION_IMAGE
+FROM ${APPLICATION_IMAGE}
+
+RUN apt-get update -qq && apt-get install -y -qq \
+  ros-kinetic-rosbash