diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8e1896b6736a6474cdd4c304cdbed589f4139299..8e1cae51944c5c8ed692e7db938c7bb1374835cd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,65 +1,23 @@
 default:
-  image: python:3.12-bullseye
-
-workflow:
-  rules:
-    - if: '$CI_PIPELINE_SOURCE == "web"'
-    - if: '$CI_COMMIT_BRANCH == "main"'
-
-variables:
-  PACKAGE_NAME: "pak"
-  REPO_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi"
-  PIP_CACHE_DIR: "${CI_PROJECT_DIR}/.cache/pip"
-  PIP_INDEX_URL: "https://__token__:${CI_JOB_TOKEN}@gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/pypi/simple"
-  PIP_EXTRA_INDEX_URL: "https://pypi.org/simple"
-  CXX: "/usr/bin/g++"
+  image: docker:26.0.1-dind
 
 stages:
   - build
-  - test
-  - publish
-
-build_package:
-  stage: build
-  before_script:
-  - apt-get update && apt-get install -y g++ make build-essential cmake
-  script:
-    - pip install --upgrade pip
-    - pip install setuptools wheel build
-    - python -m build
-  artifacts:
-    paths:
-      - dist/*
-  cache:
-    paths:
-      - ${PIP_CACHE_DIR}
 
-test_package:
-  stage: test
-  script:
-    - pip install .  
-    - pip install pytest
-    - pytest 
+variables:
+  PACKAGE_NAME: "alphafold3"
+  DOCKER_IMAGE: "$CI_REGISTRY_IMAGE/$PACKAGE_NAME"
+  DOCKER_TLS_CERTDIR: "/certs"
 
-publish_pip:
-  stage: publish
-  script:
-    - pip install twine
-    - twine upload -u gitlab-ci-token -p ${CI_JOB_TOKEN} --repository-url ${REPO_URL} dist/*
+before_script:
+  - unset DOCKER_HOST
+  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
 
-build_and_push_docker_image:
-  stage: publish
-  image: docker:latest
-  services:
-    - docker:dind
-  variables:
-    DOCKER_IMAGE_NAME: ${CI_REGISTRY_IMAGE}/${PACKAGE_NAME}
-    DOCKER_TLS_CERTDIR: "/certs"
-  before_script:
-    - echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin ${CI_REGISTRY}
-    - apt-get update && apt-get install -y g++ make build-essential cmake
+push_docker_image:
+  stage: build
+  image: docker:26.0.1-dind
   script:
-    - echo "Building docker image and tagging as latest"
-    - docker pull ${DOCKER_IMAGE_NAME}:latest || true
-    - docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from ${DOCKER_IMAGE_NAME}:latest -t ${DOCKER_IMAGE_NAME}:latest .
-    - docker push ${DOCKER_IMAGE_NAME}:latest
+    - 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