1. jenkins新建任务(流水线)

例如任务:avatar

2. jenkins -> 凭据 -> 添加凭据(username & password)

例如阿里云项目的个人配置username/password

3. avatar -> pipeline syntax

选择示例步骤 checkout:General SCM

4. avatar -> 配置 -> 流水线

将步骤三生成的脚本填写到stage('checkout'){},并补齐其他项

  脚本:
  node('jenkinsslave') {
    stage('checkout'){
        checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'c5b3bd5c-13ca-4a29-8dbb-870f5e663388', url: 'https://code.aliyun.com/icoastline-ilcfc/lcfc_issue_backend.git']]])
    }
    stage('Run shell') {
        sh 'sudo chmod 777 /etc/hosts'
        echo '\'192.168.2.226 registry.dev.com\' >> /etc/hosts'
    }
    stage('build'){
        sh 'sudo docker build ./api_issue/lcfc/test -t registry.dev.com:5000/icoastline/lcfc_issue_backend:${BUILD_NUMBER}'
        sh 'sudo docker push registry.dev.com:5000/icoastline/lcfc_issue_backend:${BUILD_NUMBER}'
    }
    stage('deploy'){
        sh 'sudo sed -i.bak \'s#IMAGE_VERSION#\'${BUILD_NUMBER}\'#\' ./api_issue/lcfc/test/test_deploy.yaml'
        sh 'sudo /home/data/common/kubectl apply -f ./api_issue/lcfc/test/test_deploy.yaml --kubeconfig /home/data/common/admin.conf'
    }
}

5. avatar -> 立即构建

相关:

FROM java:8-alpine
RUN mkdir -p /tmp/tar
COPY lcfc_iqc_backend-1.0-SNAPSHOT.jar /tmp/tar/lcfc_iqc_backend-1.0-SNAPSHOT.jar
WORKDIR /tmp/tar
RUN cd /tmp/tar
EXPOSE 8509
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","lcfc_iqc_backend-1.0-SNAPSHOT.jar"]
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: lcfciqcbackend
  namespace: icoastline-test
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: icoastline
        module: lcfciqcbackend
        env: test
    spec:
      containers:
      - name: lcfciqcbackend
        image: registry.dev.com:5000/icoastline/lcfc_iqc_backend:IMAGE_VERSION
        ports:
        - name: default
          containerPort: 8509
        envFrom: 
        - configMapRef: 
            name: db-config
---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: icoastline
    module: lcfciqcbackend
    env: test
  name: api-lcfc-iqc
  namespace: icoastline-test
spec:
  ports:
  - port: 80
    targetPort: 8509
    name: default
  selector:
    app: icoastline
    module: lcfciqcbackend
    env: test