diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2d0de21965c5148de08c67e5558db74711e276b7..6a303227127cf9307fe96e3d9bd4528dd937fe03 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,6 +5,9 @@ stages:
 variables:
   POSTGRES_PASSWORD: postgres
   POSTGRES_DB: funkwhale_network
+  DOCKER_HOST: tcp://docker:2375/
+  DOCKER_DRIVER: overlay2
+  DOCKER_TLS_CERTDIR: ""
 
 tests:
   stage: test
@@ -21,3 +24,18 @@ tests:
     - poetry run pytest
   variables:
     DB_DSN: user=postgres password=postgres dbname=funkwhale_network host=db
+
+build:
+  only:
+    - main
+  stage: build
+  image: egon0/docker-with-buildx-and-git:bash
+  tags:
+    - dind
+  services:
+    - docker:20-dind
+  before_script:
+    - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
+  script:
+    - docker build . -t funkwhale/network
+    - docker push funkwhale/network