Skip to main content

Build & Deploy docker image using Gradle

 Build & Deploy docker image using Gradle


You are tasked to create a gradle java application, Dockerfile to run the 'springbootify.jar' file on port 8080, use suitable gradle plugins to configure the gradle application to build a docker image and run the docker container. On successful deployment of docker container, hit the url (http://localhost:8080/doit) and you could see the message on the webpage.

Note:

  • Jar file 'springbootify.jar' is already given in folder /Desktop/Project no need to build a need jar file.
  • Please do install gradle using the command "sudo apt install gradle"
  • Please do use "sudo service jenkins stop"
  • Create a Docker & gradle application in the path /Desktop/Project
  • Make the gradle project operable for both gradle & gradlew commands Docker base image: openj dk: 12-jdk-alpine.

Solving the tasks...

sudo apt install gradle
sudo service jenkins stop
cd /Desktop/Project

Create a new Gradle project using the following command:

gradle init

Add the following plugins to the build.gradle file to configure the Gradle application to build a Docker image:

build.gradle

plugins {
    id 'com.palantir.docker' version '0.22.1'
    id 'com.palantir.docker-run' version '0.22.1'
}
version '1.0-SNAPSHOT'
docker {
    name "${project.name}:${project.version}"
    files 'springbootify.jar'
}
dockerRun {
    name "${project.name}"
    image "${project.name}:${project.version}"
    ports '8080:8080'
    clean true
}

Now create a Dockerfile

Dockerfile

FROM openjdk:12-jdk-alpine
COPY springbootify.jar springbootify.jar
CMD ["java","-jar", "springbootify.jar"]

Lets first create a docker image

./gradlew docker

Check the created the docker image

docker ps

Next, run the docker image

./gradlew dockerRun

After this you can visit https://localhost:8080/doit, you can view the message

That's it! You have successfully created a Gradle Java application and Dockerfile, and deployed it using Docker.

Just some useful commands

# you can run jar file with, and check the https://localhost:8080/doit
java -jar springbootify.jar

# you can also use gradle to build java project
gradle init --type java-application

# to see all images
docker ps -a

# to remove image, use option -f to force delete
docker rmi <image-name/id>

# to remove container, use option -f to force delete
docker rm <container-name/id>

References: https://tomgregory.com/automating-docker-builds-with-gradle/


--- THANK YOU ---

Comments

Popular posts from this blog

Kubernetes2

  Challenge 2 ConfigMaps: Step-1: To create a ConfigMap named 'fresco-config' with the key-value pair SERVER_URL= https://www.fresco.me , use the following command: kubectl create configmap fresco-config --from-literal=SERVER_URL=https://www.fresco.me To verify if the ConfigMap is created, use the following command: kubectl get configmap fresco-config Step-2: To create an nginx pod with the environmental variable SERVER_URL_ENV using the ConfigMap created earlier, use the following YAML template: apiVersion: v1 kind: Pod metadata: name: fresco-nginx-pod spec: containers: - name: fresco-nginx-container image: nginx env: - name: SERVER_URL_ENV valueFrom: configMapKeyRef: name: fresco-config key: SERVER_URL Deploy the above file you can name it deployment.yaml and use the command: kubectl apply -f deployment.yaml To test your configuration by executing the following command:

Kubernetes1

  Challenge 1 Welcome to the Kubernetes challenge, your task is to follow the below steps and complete them successfully. Environment Setup Check whether docker & minikube are properly installed and configured. Start Minikube and execute this command to sync host docker with minikube docker minikube -p minikube docker-env and eval $(minikube docker-env) Step-1 Create a pod object using kubectl run command with google's sample image: gcr.io/google-samples/kubernetes-bootcamp:v1 and expose it on port 8080, name the pod as firstapp. Check if the pod creation is successful by running the command: kubectl get pod firstapp Step-2 Expose the application to the local VM by creating a Service object of type NodePort. Check if the service is created by running the command: kubectl get svc firstapp Step-3 Create another deployment using a 'YAML' file, create a deployment.yaml file that contains information of the number of replicas and the images to be

Docker + Docker Compose + Ansible

 Docker + Docker Compose + Ansible ----------------------------------------------------------------------------------------------------------------------------- Flask Application Deployment using Ansible roles and Docker-Compose 1. Run the "setup.sh" file given in the path to install the required dependencies before starting the challenge. 2. A Flask application named "app.py" is given in the path . 3. Create an Ansible role named "Installation" in the path "/etc/ansible/roles" to install docker-compose. 4. Write an Ansible playbook named "creation.yaml" in the path , to perform the following tasks: 1. Using "file" and "copy" modules, create a Multi-stage "Dockerfile" in the path to  - Dockerize the given Flask application with "python:alpine3.7" as its base image, using the given 'requirements.txt' file.  - Build an image using "postgres" as its base image. 2. Using &q