项目作者: jainishshah17

项目描述 :
containerize java microservice using CircleCI 2.0
高级语言: Java
项目地址: git://github.com/jainishshah17/containerize-java-microservice.git


Containerize Java micro-services using CircleCI

CircleCI

Microservices

Command to test maven project:

  1. ## Test Java WebApplication
  2. mvn test
  3. ## Test and build Java WebApplication
  4. mvn clean install

Command to build docker image and push it to docker registry:

  • Build docker image: docker build -t $DOCKER_REGISTRY/java-webapp .
  • Run docker container: docker run -d -p 8080:8080 $DOCKER_REGISTRY/java-webapp
  • Test container accessing application in browser http://localhost:8080/
  • Login to Artifactory docker registry: docker login -u $USER -p $PASSWORD $DOCKER_REGISTRY
  • Push docker image: docker push $DOCKER_REGISTRY/java-webapp

Steps to build docker images using CircleCI and push it to docker registry.

Step 1:

copy .circleci/config.yml to your project

Step 2:

Add your project in Circle CI.

Step 3:

add Environment Variables $DOCKER_REGISTRY, USER, PASSWORD in Environment Variables settings of Circle CI.

  1. $DOCKER_REGISTRY -> Docker Registry URL
  2. e.g $DOCKER_REGISTRY -> https://mycompany.docker.io/
  3. USER -> Docker Registry User which has permission to deploy artifacts.
  4. e.g USER -> admin
  5. PASSWORD -> Password for Docker Registry User.
  6. e.g PASSWORD -> password

screenshot

Steps to build helm chart and deploy Java Webapp to Kubernetes using helm:

Prerequisites Details

  • Kubernetes 1.8+
  • helm 2.8+
Step 1: Package helm chart:
  1. helm package java-webapp
Step 2: Deploy Java Webapp to Kubernetes:
  1. helm install --name java-webapp java-webapp-1.0.0.tgz
Step 3: Check status of helm deployment
  1. helm status java-webapp
Setp 4: Access Java Webapp
  1. export SERVICE_IP=$(kubectl get svc --namespace default java-webapp -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. echo http://$SERVICE_IP:80

screenshot

Congratulation You have just containerize Java micro-services and deployed it to Kubernetes.