DEV Community

sanjay shivanna
sanjay shivanna

Posted on • Edited on

12 2

Spring boot +Docker+ Gitlab - Continuous Integration(CI)

A simple example to demonstrate, how we can use spring boot, docker and gitlab for build and test using maven, create an image and push it to gitlab repository.

Step 1 - Create a Gitlab account
If you already familiar with gitlab then feel free to skip this section, otherwise create a gitlab account by following this link Link

Step 2 - Create a New Project in Gitlab
Once you successfully created Gitlab account then create a new project

Alt Text

Step 3 - Create a New Spring boot project
Simple and easiest way to create spring boot project is to visit start.spring.io

Alt Text

Once you have the project created, use the choice of your editor to open the project.

Step 4 - Add Dockerfile and Update gitlab.ci.yml file
Docker file

FROM openjdk:13-alpine
Volume /tmp
ADD /target/*.jar springbootgitlab-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","/springbootgitlab-0.0.1-SNAPSHOT.jar"]
Enter fullscreen mode Exit fullscreen mode

gitlab-ci yml file

image: gitlab/dind
services:
  - docker:dind

variables:
  DOCKER_DRIVER: overlay
  SPRING_PROFILES_ACTIVE: gitlab-ci
  USER_GITLAB: sanjaybsm
  APP_NAME: springbootgitlab
  REPO: springbootlabtest

stages:
  - build
  - test
  - docker

maven-build:
  image: maven:3-jdk-8
  stage: build
  script: "mvn clean package -B"
  artifacts:
    paths:
      - target/*.jar

maven-test:
  image: maven:3-jdk-8
  stage: test
  script: "mvn test"
  artifacts:
    paths:
      - target/*.jar

docker-build:
  stage: docker
  script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - docker build -t registry.gitlab.com/yournameingitlab/springbootlabtest .
    - docker push registry.gitlab.com/yournameingitlab/springbootlabtest
Enter fullscreen mode Exit fullscreen mode

please note test mvn test is added just as an example

For above project I used packaging as jar since my dockerfile and gitlab yml files configured like that.

Step 5 - Commit and Push to gitlab!
git add .
git commit -m "initial commit"
git push origin master

After above step, you should see your gitlab pipeline kicking in!!
Alt Text

and also you should see your image available in container registry!
Alt Text

Voila!! you have successfully used gitlab ci/cd pipeline to build, test, create image and push image to gitlab container registry!

In the next blog I will try to explain how we can download docker image from gitlab and run it from local machine!

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay