diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..70c5e7e53bdcc7c92d7206dc188517e79b0cc432
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,64 @@
+composer_dockerize:
+  stage: build
+  tags:
+    - shell
+  script:
+    - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
+    - docker build -t "${CI_REGISTRY_IMAGE}/composer" -f docker/composer-Dockerfile .
+    - docker push "${CI_REGISTRY_IMAGE}/composer"
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+
+composer_test_dockerize:
+  stage: build
+  tags:
+    - shell
+  script:
+    - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
+    - docker build -t "${CI_REGISTRY_IMAGE}/composer/test" --build-arg "INCLUDE_TESTS=true" -f docker/composer-Dockerfile .
+    - docker push "${CI_REGISTRY_IMAGE}/composer/test"
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+
+db_dockerize:
+  stage: build
+  tags:
+    - shell
+  script:
+    - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
+    - docker build -t "${CI_REGISTRY_IMAGE}/database" -f docker/db-Dockerfile .
+    - docker push "${CI_REGISTRY_IMAGE}/database"
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+
+base_dockerize:
+  stage: build
+  tags:
+    - shell
+  script:
+    - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
+    - docker build -t "${CI_REGISTRY_IMAGE}/base" -f docker/base-Dockerfile .
+    - docker push "${CI_REGISTRY_IMAGE}/base"
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+
+test:
+  stage: test
+  tags:
+    - docker
+  image: "${CI_REGISTRY_IMAGE}/composer/test"
+  script:
+    - ./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+
+dockerize:
+  stage: deploy
+  tags:
+    - shell
+  script:
+    - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
+    - docker build -t "${CI_REGISTRY_IMAGE}" -f docker/Dockerfile .
+    - docker push "${CI_REGISTRY_IMAGE}"
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'