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. DockerfileLocation: 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.xmlTo 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 Create a new Maven project configuration parameter build Project git repository configuration mvn build buile configuration Build the Docker image and push it to the repository configuration 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:
|
<<: Prometheus monitors MySQL using grafana display
>>: HTML form application includes the use of check boxes and radio buttons
This article summarizes various ways to implement...
Today I will share with you a breathing carousel ...
To implement the "Enter != Submit" probl...
MySQL previously had a query cache, Query Cache. ...
There is no mysql by default in the yum source of...
MySQL advantage: Small size, fast speed, low tota...
The implementation idea of the javascript game ...
Table of contents 1. First look at COUNT 2. The d...
This article shares the specific code of Vue to i...
Table of contents 1. Array.at() 2. Array.copyWith...
This article shares the specific code of Vue intr...
Mysql join query 1. Basic concepts Connect each r...
I have just come into contact with and become fam...
The function I want to achieve is to open a new w...
The mysql on the server is installed with version...