297513458 / dk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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
        '''
   }
}

About


Languages

Language:Java 84.0%Language:Shell 9.5%Language:Dockerfile 6.5%