GithubHelp home page GithubHelp logo

dk's Introduction

apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-nginx namespace: default annotations: kubernetes.io/ingress.class: "nginx" spec: rules:

  • host: myapp.klvchen.com http: paths:
    • path: backend: serviceName: myapp servicePort: 8008

pom配置

 先在pom.xml加上插件,
	注意:docker服务器地址(默认docker.io)/docker注册名称/具体名称(docker服务器地址的值需要在settings.xml里有对应的配置,否则无法push到docker服务器)
  
 
	com.spotify
	dockerfile-maven-plugin
	1.4.10
	
		
			default
			
				build
				push
			
		
	
	
		true
		false 
		registry.hub.docker.com/${docker.registry.name}/${project.artifactId}				
		latest
		
			target/${project.build.finalName}.jar
		
	

settings.xml配置

docker服务器的用户名密码配置 id和上面的docker服务器地址地址一致

   	 
      docker.io
      297513458
      密码
    
    
      registry.hub.docker.com 
      297513458
      密码
    

在pom.xml同级目录加上Dockerfile

dockerfile 基础配置

FROM openjdk:8-jre
MAINTAINER wendao
#加载到docker的目录
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} /app/app.jar
WORKDIR /app/
EXPOSE 8080
ENTRYPOINT ["/usr/bin/java","-jar","./app.jar"]
命令,不处理docker:mvn clean package -Ddockerfile.skip
编译mvn clean package dockerfile:build
发布mvn clean package dockerfile:push或mvn clean deploy

jenkins pipeline

node {
   echo "$env"
   sh "echo `date +%Y%m%d%H-`$env.BUILD_ID > dk.v"
   sh 'cat dk.v'
   stage('拉取git'  ) { // for display purposes
     echo '拉取git'
     git "$giturl"
   }
   stage('构建') {
      echo 'mvn clean package'
       sh "mvn clean package"
   }
    stage('构建docker') {
      echo '构建docker'
        sh '''
        v=`cat dk.v`
        docker build -t 297513458/dk:$v .
      '''
   }
   stage('发布到私服 ') {
      echo 'deploy docker'
      sh '''
        v=`cat dk.v`
        docker login -u 297513458 -p $password
        docker push 297513458/dk:$v
      '''
   }
    stage('触发k8s') {
      echo '部署k8s'
       sh '''
       v=`cat dk.v`
       count=`kubectl get deploy k8s --namespace=app|wc -l`
       if [ $count == 2 ]
       then
            echo "执行update"
            kubectl set image deployments/k8s k8s=297513458/dk:$v --namespace=app
        else
            echo "执行deploy"
            kubectl run k8s --image=297513458/dk:$v --replicas=3 --namespace=app
            echo "开放服务k8s"
            kubectl expose deployment/k8s --port=8080 --target-port=8080 --type=LoadBalancer --namespace=app
        fi
        '''
   }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.