diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..548da28c2710ff01ee39f03485d5425e65c0da27
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,23 @@
+default:
+  image: docker:26.0.1-dind
+
+stages:
+  - build
+
+variables:
+  PACKAGE_NAME: "pandas"
+  DOCKER_IMAGE: "$CI_REGISTRY_IMAGE/$PACKAGE_NAME"
+  DOCKER_TLS_CERTDIR: "/certs"
+
+before_script:
+  - unset DOCKER_HOST
+  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+
+push_docker_image:
+  stage: build
+  image: docker:26.0.1-dind
+  script:
+    - docker build -t $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA -f docker/Dockerfile .
+    - docker push $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA
+  only:
+    - main  # Only run on the main branch