root 3 years ago
parent
commit
17952ec00c
7 changed files with 203 additions and 0 deletions
  1. 90 0
      .drone.yml
  2. 1 0
      .gitignore
  3. 25 0
      Dockerfile
  4. BIN
      cif-resin8080.tgz
  5. 7 0
      cif.ini
  6. 71 0
      deploy-tmp.yaml
  7. 9 0
      entrypoint.sh

+ 90 - 0
.drone.yml

@@ -0,0 +1,90 @@
+kind: pipeline
+type: kubernetes
+name: cif
+
+clone:
+  disable: true
+
+metadata:
+  namespace: drone
+
+steps:
+ - name: clone
+   image: hub.evbj.easou.com/dev/alpine-git:20200622
+   commands:
+   - git clone --depth=1 $DRONE_GIT_HTTP_URL .
+
+ - name: build
+   image: plugins/docker
+   settings:
+     username: admin
+     password: Easou2)1*
+     insecure: true
+     mirror: https://ci7pm4nx.mirror.aliyuncs.com
+     registry: hub.evbj.easou.com
+     repo: hub.evbj.easou.com/oldad/${DRONE_REPO_NAME}
+     tag: v1.0.0
+     
+ - name: deployment
+   image: hub.evbj.easou.com/dev/drone-agent:v2.0.0
+   pull: always
+   # privileged: true
+   environment:
+     JNLP_ENV: oldad
+     JNLP_REPLICAS: 1
+     JNLP_TAG: v1.0.0
+     JNLP_VERSION: v1  # default v1, v2 for canary
+     DEPLOY_ENV: k8s-2 # 可以选择把应用部署到集群:k8s-1 or k8s-2
+     JNLP_REPO: hub.evbj.easou.com
+     JNLP_CONTAINER_PORT: 8080
+     JNLP_INGRESS: nginx
+     JNLP_SVC_MODE: http
+     JNLP_STORAGE_CLASS: rbd
+     JNLP_DOMAIN: .ieasou.cn
+     JNLP_CONTROL: StatefulSet
+     JNLP_STORAGE_CAPACITY: 100Gi
+     JNLP_MOUNT_PATH: /data
+     JNLP_LIVENESS_INIT: 30
+     JNLP_LIVENESS_PER: 15
+     JNLP_READINESS_INIT: 30
+     JNLP_READINESS_PER: 15
+     JNLP_INGRESS_PUB: no
+   commands:
+     # 切换目标集群
+     - kubecm s $DEPLOY_ENV
+     # 生成配置YAML文件
+     - python3 /root/tools.py -b
+     # 部署服务到kubernetes上
+     - python3 /root/tools.py -a
+     # 检查服务部署状态
+     - python3 /root/tools.py -c
+     # 添加dns解析记录,生成访问域名
+     - python3 /root/tools.py -d
+
+ - name: success
+   image: hub.evbj.easou.com/dev/drone-wechat:20200622
+   settings:
+     corpid: ww419ee4063735e1c0
+     corp_secret: zpiRBLETH9eLwIMQ4eJ_r_dcm3BPSGeLHvTcft8Ot-M
+     agent_id: 1000004
+     title: "Pipeline ${DRONE_REPO_NAME} Success"
+     description: "${DRONE_BUILD_LINK} 部署完成"
+     msg_url: ${DRONE_BUILD_LINK}
+     btn_txt: "否"
+   when:
+     status:
+     - success
+
+ - name: failure
+   image: hub.evbj.easou.com/dev/drone-wechat:20200622
+   settings:
+     corpid: ww419ee4063735e1c0
+     corp_secret: zpiRBLETH9eLwIMQ4eJ_r_dcm3BPSGeLHvTcft8Ot-M
+     agent_id: 1000004
+     title: "Pipeline ${DRONE_REPO_NAME} Failure"
+     description: "${DRONE_BUILD_LINK} 部署失败,请检查配置!"
+     msg_url: ${DRONE_BUILD_LINK}
+     btn_txt: "否"
+   when:
+     status:
+     - failure

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+resin8080/

+ 25 - 0
Dockerfile

@@ -0,0 +1,25 @@
+FROM hub.evbj.easou.com/dev/centos:7.9.2009
+
+ENV TZ=Asia/Shanghai
+ENV JAVA_HOME /usr/java/jdk1.8.0_271
+
+COPY cif-resin8080.tgz /tmp/cif-resin8080.tgz
+
+RUN rm -f /etc/yum.repos.d/* \
+    && curl -s http://mirrors.163.com/.help/CentOS7-Base-163.repo -o /etc/yum.repos.d/CentOS7-Base-163.repo \
+    && yum clean all \
+    && yum install epel-release -y \
+    && yum install -y supervisor \
+    && sed -i "s/nodaemon=false/nodaemon=true/" /etc/supervisord.conf \
+    && useradd ecom \
+    && mkdir -p /app/ecom /data/ecom/core /data/ecom/online/logs/ \
+    && curl -s http://10.26.22.185:9000/psop/soft/jdk1.8.0_271.tar.gz -o /tmp/jdk1.8.0_271.tar.gz \
+    && tar -zxf /tmp/jdk1.8.0_271.tar.gz -C /usr/java/ \
+    && tar -zxf /tmp/cif-resin8080.tgz -C /app/ecom/ \
+    && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
+    && chown -R ecom:ecom /app/ecom /data
+
+COPY cif.ini /etc/supervisord.d/cif.ini
+
+
+CMD ["supervisord"]

BIN
cif-resin8080.tgz


+ 7 - 0
cif.ini

@@ -0,0 +1,7 @@
+[program:cif]
+command=/app/ecom/resin8080/bin/httpd.sh
+process_name=%(program_name)s
+startsecs=30
+startretries=3
+autostart=true
+autorestart=true

+ 71 - 0
deploy-tmp.yaml

@@ -0,0 +1,71 @@
+---
+apiVersion: apps/v1
+kind: $JNLP_CONTROL
+metadata:
+  name: $DRONE_REPO_NAME
+  namespace: $JNLP_ENV
+  labels:
+    app: $DRONE_REPO_NAME
+spec:
+  serviceName: $DRONE_REPO_NAME
+  replicas: $JNLP_REPLICAS
+  selector:
+    matchLabels:
+      app: $DRONE_REPO_NAME
+  template:
+    metadata:
+      labels:
+        app: $DRONE_REPO_NAME
+    spec:
+      terminationGracePeriodSeconds: 180
+      initContainers:
+        - name: init
+          image: $JNLP_REPO/dev/busybox
+          command: ["chmod","777","-R","$JNLP_MOUNT_PATH"]
+          volumeMounts:
+          - name: volume
+            mountPath: $JNLP_MOUNT_PATH
+      containers:
+      - name: $DRONE_REPO_NAME
+        image: $JNLP_REPO/$JNLP_ENV/$DRONE_REPO_NAME:$JNLP_TAG
+        imagePullPolicy: Always
+        ports:
+        - containerPort: $JNLP_CONTAINER_PORT
+          name: port
+        volumeMounts:
+        - name: volume
+          mountPath: $JNLP_MOUNT_PATH
+        livenessProbe:
+          tcpSocket:
+            port: $JNLP_CONTAINER_PORT
+          initialDelaySeconds: $JNLP_LIVENESS_INIT
+          periodSeconds: $JNLP_LIVENESS_PER
+        readinessProbe:
+          tcpSocket:
+            port: $JNLP_CONTAINER_PORT
+          initialDelaySeconds: $JNLP_READINESS_INIT
+          periodSeconds: $JNLP_READINESS_PER
+  volumeClaimTemplates:
+  - metadata:
+      name: volume
+    spec:
+      accessModes: ["ReadWriteOnce"]
+      storageClassName: rbd
+      resources:
+        requests:
+          storage: $JNLP_STORAGE_CAPACITY
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: $DRONE_REPO_NAME-svc
+  namespace: $JNLP_ENV
+  labels:
+    app: $DRONE_REPO_NAME-svc
+spec:
+  type: NodePort
+  ports:
+  - port: $JNLP_CONTAINER_PORT
+    targetPort: $JNLP_CONTAINER_PORT
+  selector:
+    app: $DRONE_REPO_NAME

+ 9 - 0
entrypoint.sh

@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -e 
+set -o pipefail
+
+mkdir -p /data/ecom/core /data/ecom/online/logs/
+chown -R ecom:ecom /app /data 
+
+exec "$@"