Jenkins builds Docker images and pushes them to Harbor warehouse

Jenkins builds Docker images and pushes them to Harbor warehouse

The spring boot project uses Jenkins to build a Docker image, push it to the harbor repository, start the container, and then pull the image to the local running container.

Dockerfile

Location: in the root directory, at the same level as src

FROM java:8
 # Author: MAINTAINER zhaoyc
VOLUME /tmp
#ARG JAR_FILE
#Add the jar package to the container and rename it to app.jar
ADD target/*.jar app.jar
RUN bash -c 'touch /app.jar'
ENV TZ=Asia/Shanghai
#RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 81
#CMD ["-jar", "/app.jar"] "nohup" "&"
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

pom.xml

To specify the Maven version number as 1.4.2, other versions have not been tested, otherwise the main-class cannot be found

<plugins>
 <!-- mavn jar package startup plug-in -->
	<plugin>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-maven-plugin</artifactId>
		<version>1.4.2.RELEASE</version>
	</plugin>
</plugins>

Jenkins Configuration

System settings configuration docker – need to install Docker plugin

insert image description here

Create a new Maven project configuration parameter build

insert image description here

Project git repository configuration

insert image description here

mvn build buile configuration

insert image description here

Build the Docker image and push it to the repository configuration

insert image description here

Execute the script after pushing to the repository

#!/bin/bash
#IMAGE=${module_filename}
#TAG=${Tag}
IMAGE=$1
TAG=$2
PULL_IMAGE=192.168.1.100:81/project/${IMAGE}:${TAG}
# Calculate subtraction and output with 0 in front of the decimal point, such as 0.3-0.1=0.2
CURRENT_IAMGE=`echo "$TAG - 0.1" | bc | awk '{printf "%.1f", $0}'`

echo '================Start logging into Harbor warehouse================'
docker login http://192.168.1.100:81 -u admin -p Harbor12345

if [ $? -eq 0 ]; then
    echo '================Login successful================='
else
    echo '================Login failed================='
    return 1
fi

echo '================Start pulling image================'
docker pull ${PULL_IMAGE}
echo '================End of pulling image================'

# Update container operation echo '================Stop running the image================'
docker stop ${IMAGE}_${CURRENT_IAMGE}
echo "wait 10 seconds"
sleep 10

echo '================Start starting mirror================'
#if [ ${IMAGE} == "java-demo" ]; then
# docker run -d --name ${IMAGE}_${TAG} -p 9001:9001 ${PULL_IMAGE}
#elif [ ${IMAGE} == "spring-cloud-eureka-client-demo" ]; then
# docker run -d --name ${IMAGE}_${TAG} -p 9012:9012 ${PULL_IMAGE}
#fi
docker run -d --name ${IMAGE}_${TAG} -p 9001:9001 ${PULL_IMAGE}
if [ $? -eq 0 ]; then
    echo '================Mirroring started successfully================'
else
    echo '================Mirror startup failed================'
    return 1
fi

This is the end of this article about how Jenkins builds Docker images and pushes them to the Harbor repository. For more information about how Jenkins builds Docker images, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • How to use Docker buildx to build multi-platform images and push them to private repositories
  • Use Docker to build a Git image using the clone repository
  • How to use domestic image warehouse for Docker
  • docker-maven-plugin packages the image and uploads it to a private warehouse
  • How to use Docker image repository
  • Alibaba Cloud deployment steps for Docker private image repository
  • Docker container practice image warehouse

<<:  Prometheus monitors MySQL using grafana display

>>:  HTML form application includes the use of check boxes and radio buttons

Recommend

A brief discussion on how to write beautiful conditional expressions in JS

Table of contents Multiple conditional statements...

JS implements sliding up and down on the mobile terminal one screen at a time

This article shares with you the specific code of...

JavaScript Regular Expressions Explained

Table of contents 1. Regular expression creation ...

Record the process of connecting to the local Linux virtual machine via SSH

Experimental environment: Physical machine Window...

Linux RabbitMQ cluster construction process diagram

1. Overall steps At the beginning, we introduced ...

Detailed explanation of the principles and usage of MySQL stored procedures

This article uses examples to explain the princip...

Simple implementation of vue drag and drop

This article mainly introduces the simple impleme...

How to choose the format when using binlog in MySQL

Table of contents 1. Three modes of binlog 1.Stat...

Detailed tutorial on installing mysql 8.0.13 (rpm) on Centos7

yum or rpm? The yum installation method is very c...

How to set the width attribute to the style of the span tag

If you directly set the width attribute to the sty...

Explanation of the working principle and usage of redux

Table of contents 1. What is redux? 2. The princi...