基于git+jenkins+docker,运行本地hello工程

  1. 硬件设备
    win10系统笔记本
  2. 环境
    安装git,下载tomcat8.5,jenkins.war,安装oracle virsual vm, vm下安装centos7.5系 统,虚拟机环境下需要安装docker,配置网卡等
    虚拟机需要新增网卡2,配置如下:
    在这里插入图片描述
    目的是可以通过ip地址访问,也可以通过配置网卡1端口映射访问,如下:
    在这里插入图片描述
  3. 将jenkins.war放到tomcat/webapps下并启动运行,浏览器访问:http://localhost:8183/jenkins,8183为已修改端口号。
  4. 配置jenkins,安装git,ssh,maven插件并配置等
    系统配置:
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

工具配置:
在这里插入图片描述

在这里插入图片描述
5. 新建工程,并配置
本地编写hello工程

idea新建springboot web工程,pom配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>testgitjenkinsdocker</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>testgitjenkinsdocker</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--<configuration>
                    <mainClass>com.example.testgitjenkinsdocker.TestgitjenkinsdockerApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>-->
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

主类:

package com.example.testgitjenkinsdocker;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;

@SpringBootApplication
@RestController
public class TestgitjenkinsdockerApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(TestgitjenkinsdockerApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(TestgitjenkinsdockerApplication.class, args);
    }

    @GetMapping("hello")
    public void hello(HttpServletResponse response) throws Exception {
        response.getWriter().write("hello my first test git+jenkis+docker!");
    }
}

注意:这里要让war包工程可在自己的tomcat运行,尝试过几次只有这种方式可以。当然不是唯一,但其他方式未成功,待补充。

Jenkins新建该工程:在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8.docker镜像构建脚本Dockerfile

[root@localhost v1]# cat Dockerfile 
FROM tomcat:latest
MAINTAINER zjx gdut_zjx@163.com
WORKDIR /usr
COPY testgitjenkinsdocker-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/
EXPOSE 8080
ENTRYPOINT /usr/local/tomcat/bin/startup.sh && tail -f /usr/local/tomcat/logs/catalina.out

运行脚本deploy.sh

#!/bin/bash
imageid=`docker images|grep zjx/tomcat|grep 0.0.1|awk '{print$3}'`
containgid=`docker ps|grep tomcat001|awk '{print$1}'`
containgid_a=`docker ps -a|grep tomcat001|awk '{print$1}'`
if [ -n $imageid ]
then
    if [ -n $containgid ]
    then
        docker stop $containgid
    fi
    docker rm $containgid_a -f
    docker rmi $imageid -f
fi
docker build -t zjx/tomcat:0.0.1 .
docker run --name=tomcat001 -p 8087:8080  -idt zjx/tomcat:0.0.1

说明:如果需要,可以push到docker hub,其他人再拉去。
将创建的java web镜像push到docker hub上:
首先停止容器:docker stop
docker tag /[:]
如:docker tag imageid panjq/tomcat_test:1.0
docker login
docker push /:
如: docker push panjq/tomcat_test:1.0
将镜像从docker hub上拉下来:
docker pull panjq/tomcat_test:1.0
9. 运行
http://192.168.56.102:8087/testgitjenkinsdocker-0.0.1-SNAPSHOT/hello
结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值