Bläddra i källkod

支持drone流水线发布到k8s

linwenxiang 4 år sedan
förälder
incheckning
52e72a47a5
5 ändrade filer med 163 tillägg och 0 borttagningar
  1. 14 0
      Dockerfile
  2. 26 0
      scripts/.drone.yml
  3. 55 0
      scripts/k8s/default.conf
  4. 65 0
      scripts/k8s/deploy.yml
  5. 3 0
      scripts/k8s/prerun.sh

+ 14 - 0
Dockerfile

@@ -0,0 +1,14 @@
+FROM registry.cn-shanghai.aliyuncs.com/lwmeng/node:lts-alpine as build-stage
+WORKDIR /app
+COPY package*.json ./
+RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
+RUN cnpm install
+COPY . .
+RUN npm run build:prod
+
+# production stage
+FROM registry.cn-shanghai.aliyuncs.com/lwmeng/nginx
+COPY --from=build-stage /app/dist /usr/share/nginx/html
+
+EXPOSE 80
+CMD ["nginx", "-g", "daemon off;"]

+ 26 - 0
scripts/.drone.yml

@@ -0,0 +1,26 @@
+kind: pipeline
+type: kubernetes
+name: default
+
+steps:
+  - name: cmd
+    image: alpine
+    commands:
+      - sed -i 's/DRONE_COMMIT/${DRONE_COMMIT}/g' scripts/k8s/deploy.yml
+  - name: docker
+    image: plugins/docker
+    settings:
+      username:
+        from_secret: username
+      password:
+        from_secret: password
+      repo: registry.cn-shanghai.aliyuncs.com/go-admin-team/go-admin-ui
+      tags: v1.2.2
+      registry: registry.cn-shanghai.aliyuncs.com
+  - name: dron8s
+    image: bh90210/dron8s:latest
+    settings:
+      yaml:
+        - ./scripts/k8s/deploy.yml
+      kubeconfig:
+        from_secret: kubeconfig

+ 55 - 0
scripts/k8s/default.conf

@@ -0,0 +1,55 @@
+server {
+  listen       80;
+  listen  [::]:80;
+  server_name  localhost;
+
+  #charset koi8-r;
+  #access_log  /var/log/nginx/host.access.log  main;
+
+  location / {
+      root   /usr/share/nginx/html;
+      index  index.html index.htm;
+  }
+
+  location /api {
+    proxy_pass http://go-admin:8000/api;
+    proxy_http_version 1.1;
+    proxy_set_header Connection “”;
+    proxy_connect_timeout 300s;
+    proxy_send_timeout 900;
+    proxy_read_timeout 900;
+    proxy_buffer_size 32k;
+    proxy_buffers 4 64k;
+    proxy_busy_buffers_size 128k;
+    proxy_redirect off;
+    proxy_hide_header Vary;
+    proxy_set_header Accept-Encoding '';
+    proxy_set_header Referer $http_referer;
+    proxy_set_header Cookie $http_cookie;
+    proxy_set_header Host $host;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+  }
+
+  location /login {
+    proxy_pass http://go-admin:8000/login;
+    proxy_http_version 1.1;
+    proxy_set_header Connection “”;
+    proxy_connect_timeout 300s;
+    proxy_send_timeout 900;
+    proxy_read_timeout 900;
+    proxy_buffer_size 32k;
+    proxy_buffers 4 64k;
+    proxy_busy_buffers_size 128k;
+    proxy_redirect off;
+    proxy_hide_header Vary;
+    proxy_set_header Accept-Encoding '';
+    proxy_set_header Referer $http_referer;
+    proxy_set_header Cookie $http_cookie;
+    proxy_set_header Host $host;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+  }
+}

+ 65 - 0
scripts/k8s/deploy.yml

@@ -0,0 +1,65 @@
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: go-admin-ui
+  namespace: go-admin
+  labels:
+    app: go-admin-ui
+    service: go-admim-ui
+spec:
+  ports:
+    - port: 80
+      name: http
+      protocol: TCP
+  selector:
+    app: go-admin-ui
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: go-admin-go-admin-ui
+  namespace: go-admin
+  labels:
+    account: go-admin-ui
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: go-admin-ui-v1
+  namespace: go-admin
+  labels:
+    app: go-admin-ui
+    version: v1
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: go-admin-ui
+      version: v1
+  template:
+    metadata:
+      labels:
+        app: go-admin-ui
+        version: v1
+    spec:
+      serviceAccountName: go-admin-go-admin-ui
+      containers:
+        - name: go-admin-ui
+          image: registry.cn-shanghai.aliyuncs.com/go-admin-team/go-admin-ui:v1.2.2
+          #imagePullPolicy: IfNotPresent
+          ports:
+            - containerPort: 80
+          volumeMounts:
+            - name: frontendconf
+              mountPath: /etc/nginx/conf.d/default.conf
+              subPath: default.conf
+              readOnly: true
+          env:
+            - name: COMMIT_TAG
+              value: "DRONE_COMMIT"
+      volumes:
+        - name: frontendconf
+          configMap:
+            name: nginx-frontend
+---

+ 3 - 0
scripts/k8s/prerun.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+kubectl create ns go-admin
+kubectl create configmap nginx-frontend --from-file=./default.conf -n go-admin