diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d118b8f9c549e935ec7d856ec516e553c0d69e4a
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,87 @@
+
+variables:
+  CONTAINER_BRANCH_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
+
+stages:
+  - compile
+  - test
+  - package
+  - analyse
+  - publish
+  - image
+  - release
+  - deploy
+
+.maven:
+  image: registry.esss.lu.se/ics-docker/maven:openjdk-17
+  tags:
+    - docker
+
+.docker:
+  image: docker:latest
+  tags:
+    - docker
+
+compile:
+  stage: compile
+  extends: .maven
+  script:
+    - mvn --batch-mode compile
+  artifacts:
+    paths:
+      - target/
+    expire_in: 1 day
+
+test:
+  stage: test
+  extends: .maven
+  script:
+    - mvn --batch-mode test
+  artifacts:
+    reports:
+      junit:
+      - target/surefire-reports/TEST-*.xml
+
+package:
+  stage: package
+  extends: .maven
+  script:
+    - mvn --batch-mode install
+  artifacts:
+    paths:
+      - target/naming-backend-*.jar
+
+# sonar:
+#   stage: analyse
+#   extends: .maven
+#   script:
+#     - mvn --batch-mode sonar:sonar -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.branch.name=$CI_COMMIT_REF_SLUG
+#   only:
+#     - branches@ics-software/naming-backend
+
+docker-build:
+  stage: image
+  extends: .docker
+  before_script:
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+  script:
+    - docker build -t $CONTAINER_BRANCH_IMAGE .
+    - docker push $CONTAINER_BRANCH_IMAGE
+  only:
+    - branches
+
+docker-release:
+  stage: release
+  extends: .docker
+  before_script:
+    - apk add xmlstarlet
+    - POM_VERSION=$(xmlstarlet sel -N pom=http://maven.apache.org/POM/4.0.0 -t -v "/pom:project/pom:version" pom.xml)
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+  script:
+    - docker pull $CONTAINER_BRANCH_IMAGE
+    - docker tag $CONTAINER_BRANCH_IMAGE $CI_REGISTRY_IMAGE:$POM_VERSION
+    - docker tag $CONTAINER_BRANCH_IMAGE $CI_REGISTRY_IMAGE:latest
+    - docker push $CI_REGISTRY_IMAGE:$POM_VERSION
+    - docker push $CI_REGISTRY_IMAGE:latest
+  only:
+    - main
diff --git a/Dockerfile b/Dockerfile
index 55cad0b0eecc022c38004b957742450c4f30669f..b6f255e07fb3cbdc46905f84ca9c604755741a92 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,6 +5,6 @@
 FROM openjdk:17
 
 # deployment unit
-COPY target/naming-backend-0.0.1-SNAPSHOT.jar /naming/naming-backend-0.0.1-SNAPSHOT.jar
+COPY target/naming-backend-*.jar /naming/naming-backend.jar
 
-CMD ["java", "-jar", "/naming/naming-backend-0.0.1-SNAPSHOT.jar", "--spring.config.name=application-docker"]
+CMD ["java", "-jar", "/naming/naming-backend.jar", "--spring.config.name=application-docker"]