diff --git a/.docker/app/Dockerfile b/.docker/app/Dockerfile
index d1320fc273aba8db5b46fbccdd18b7a9c60a0776..57b09033569a60d6441c8a741684bf2575968901 100644
--- a/.docker/app/Dockerfile
+++ b/.docker/app/Dockerfile
@@ -33,15 +33,17 @@ ENV CI_COMMIT_TIMESTAMP=${CI_COMMIT_TIMESTAMP}
 ARG CI_COMMIT_SHA
 ENV CI_COMMIT_SHA=${CI_COMMIT_SHA}
 
-ADD --chmod=0755 startup.sh ${SCRIPT_ROOT}
-ADD --chmod=0755 updater.sh ${SCRIPT_ROOT}
-ADD --chmod=0755 dcron.sh ${SCRIPT_ROOT}
-ADD --chmod=0755 backup.sh /etc/periodic/weekly/backup
+ADD .docker/app/startup.sh ${SCRIPT_ROOT}
+ADD .docker/app/updater.sh ${SCRIPT_ROOT}
+ADD .docker/app/dcron.sh ${SCRIPT_ROOT}
+ADD .docker/app/backup.sh /etc/periodic/weekly/backup
 
-ADD index.php ${SCRIPT_ROOT}
-ADD config.docker.php ${SCRIPT_ROOT}
+RUN chmod 0755 ${SCRIPT_ROOT}/*.sh
 
-COPY --from=app-src . ${SRC_DIR}
+ADD .docker/app/index.php ${SCRIPT_ROOT}
+ADD .docker/app/config.docker.php ${SCRIPT_ROOT}
+
+COPY . ${SRC_DIR}
 
 ARG ORIGIN_REPO_XACCEL=https://git.tt-rss.org/fox/ttrss-nginx-xaccel.git
 
diff --git a/.docker/web-nginx/Dockerfile b/.docker/web-nginx/Dockerfile
index 7f10ed33a0dbd9410496a7a9e3acdf401df2479c..9246f8106d1690804d26990526c6db095b54123b 100644
--- a/.docker/web-nginx/Dockerfile
+++ b/.docker/web-nginx/Dockerfile
@@ -2,7 +2,7 @@ FROM registry.fakecake.org/docker.io/nginx:alpine
 
 HEALTHCHECK CMD curl --fail http://localhost/tt-rss/index.php || exit 1
 
-COPY nginx.conf /etc/nginx/templates/nginx.conf.template
+COPY .docker/web-nginx/nginx.conf /etc/nginx/templates/nginx.conf.template
 
 # By default, nginx will send the php requests to "app" server, but this server
 # name can be overridden at runtime by passing an APP_UPSTREAM env var
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8b28067f227ce3bcf467d1583816ce61864ad811..f11fa79311e8ff63d4e55299b6db3f1aad188906 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,7 +8,7 @@ variables:
 include:
   - project: 'ci/ci-templates'
     ref: master
-    file: .ci-build-docker.yml
+    file: .ci-build-docker-kaniko.yml
   - project: 'ci/ci-templates'
     ref: master
     file: .ci-lint-common.yml
@@ -25,22 +25,22 @@ phpstan:
 ttrss-web-nginx:
   extends: .build-master
   variables:
-    BUILD_CONTEXT: ${CI_PROJECT_DIR}/.docker/web-nginx
+    DOCKERFILE: ${CI_PROJECT_DIR}/.docker/web-nginx/Dockerfile
 
 ttrss-web-nginx:branch:
   extends: .build-branch
   variables:
-    BUILD_CONTEXT: ${CI_PROJECT_DIR}/.docker/web-nginx
+    DOCKERFILE: ${CI_PROJECT_DIR}/.docker/web-nginx/Dockerfile
 
 ttrss-fpm-pgsql-static:
    extends: .build-master
    variables:
-    BUILD_CONTEXT: ${CI_PROJECT_DIR}/.docker/app
+    DOCKERFILE: ${CI_PROJECT_DIR}/.docker/app/Dockerfile
 
 ttrss-fpm-pgsql-static:branch:
    extends: .build-branch
    variables:
-    BUILD_CONTEXT: ${CI_PROJECT_DIR}/.docker/app
+    DOCKERFILE: ${CI_PROJECT_DIR}/.docker/app/Dockerfile
 
 phpdoc:
   image: ${PHP_IMAGE}