diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 154156c860004e6c6c13b8f2a2e47b9ac05881c7..030618a97f0824f445af4b391b119b7459bae974 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,12 +1,11 @@
-image: docker:19.03.1
+image: docker:19.03.12
 
 variables:
   DOCKER_TLS_CERTDIR: "/certs"
-  IMAGE_TAG: $CI_REGISTRY_IMAGE
-  IMAGE_VER: 3.3.8
+  IMAGE_VER: 4.0.2-1
 
 services:
-  - docker:19.03.1-dind
+  - docker:19.03.12-dind
 
 before_script:
   - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
@@ -14,7 +13,7 @@ before_script:
 build:
   stage: build
   script:
-    - docker build -t $IMAGE_TAG:$IMAGE_VER .
-    - docker tag $IMAGE_TAG:$IMAGE_VER $IMAGE_TAG:latest
-    - docker push $IMAGE_TAG:$IMAGE_VER
-    - docker push $IMAGE_TAG:latest
+    - docker pull $CI_REGISTRY_IMAGE:latest || true
+    - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$IMAGE_VER --tag $CI_REGISTRY_IMAGE:latest .
+    - docker push $CI_REGISTRY_IMAGE:$IMAGE_VER
+    - docker push $CI_REGISTRY_IMAGE:latest
diff --git a/Dockerfile b/Dockerfile
index b93ca20b542f79d7c15ee219dff53f3e28d8deab..3ccb8dca3fd4e98ea1b2244f10a5d0b72e178b11 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,3 @@
-FROM graylog/graylog:3.3.8
+FROM graylog/graylog:4.0.2
 MAINTAINER Andrej RamaĊĦeuski <andrej.ramaseuski@pirati.cz>
-RUN curl -L -o /usr/share/graylog/plugin/graylog-plugin-auth-sso-3.3.0.jar https://github.com/Graylog2/graylog-plugin-auth-sso/releases/download/3.3.0/graylog-plugin-auth-sso-3.3.0.jar
 RUN curl -L -o /usr/share/graylog/plugin/graylog-output-syslog-3.3.0.jar https://github.com/wizecore/graylog2-output-syslog/releases/download/3.3.0/graylog-output-syslog-3.3.0.jar
-RUN curl -L -o /usr/share/graylog/plugin/graylog-plugin-matomo-0.0.3.jar https://github.com/petzah/graylog-plugin-matomo/releases/download/v0.0.3/graylog-plugin-matomo-0.0.3.jar