diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7f678ccfedbc92207b0724c904a216f26dc01dd8
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,29 @@
+image: docker:18.06
+
+services:
+  - docker:18.06-dind
+
+before_script:
+  - docker info
+
+test_build_image:
+  tags:
+  - docker
+  script:
+    - docker build .
+  except:
+    - tags
+
+build_image:
+  tags:
+  - docker
+  script:
+    - docker pull "$CI_REGISTRY_IMAGE:latest" || true
+    - docker build --cache-from "$CI_REGISTRY_IMAGE:latest" --pull -t "$CI_REGISTRY_IMAGE:$CI_BUILD_TAG" .
+    - docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY
+    - docker tag $CI_REGISTRY_IMAGE:$CI_BUILD_TAG $CI_REGISTRY_IMAGE:latest
+    - docker push "$CI_REGISTRY_IMAGE:$CI_BUILD_TAG"
+    - docker push "$CI_REGISTRY_IMAGE:latest"
+
+  only:
+    - tags