From 88dcbf3196d7c4aece2390b9fee93a094b1cb88b Mon Sep 17 00:00:00 2001 From: zhangkaihuai Date: Tue, 22 Jul 2025 07:26:24 +0000 Subject: [PATCH 1/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.drone.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 322 +++++++++++++++++++++++++++-------------------------- 1 file changed, 162 insertions(+), 160 deletions(-) diff --git a/.drone.yml b/.drone.yml index f1dcd63..08b5936 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,160 +1,162 @@ -kind: pipeline -type: docker -name: mosr-web -platform: - os: linux - arch: arm64 -steps: - - - - name: build-package - image: node:18.19.0 - volumes: - - name: cache - path: /drone/src/node_modules - commands: - - export CI=false - - mkdir -p /app/build/$DRONE_REPO_NAME - - rm -rf /app/build/$DRONE_REPO_NAME/* - - cp deployment.yml /app/build/$DRONE_REPO_NAME/ - - cp Dockerfile /app/build/$DRONE_REPO_NAME/ - - cp .dockerignore /app/build/$DRONE_REPO_NAME/ - - cp default.conf /app/build/$DRONE_REPO_NAME/ - - cp docker.sh /app/build/$DRONE_REPO_NAME/ - - cp nginx.conf /app/build/$DRONE_REPO_NAME/ - - npm -v - - node -v - - mkdir -p ./node_modules - - export NODE_MODULES_PATH=`pwd`/node_modules - - npm config set registry https://registry.npmmirror.com - - set NODE_OPTIONS=--openssl-legacy-provider - - npm install --legacy-peer-deps - - npm install codemirror -# - npm install patch-package -# - npx patch-package -# - npm info unplugin-icons - - npm list package-manager-detector - # - npm install unplugin-icons@latest @antfu/install-pkg@latest package-manager-detector@latest - - npm run build - - ls /app/build/$DRONE_REPO_NAME/ - - echo $NODE_MODULES_PATH - - cp -r dist /app/build/$DRONE_REPO_NAME - - - - name: build-docker-prod # 制作docker镜像 - image: 10.7.127.190:38080/docker/docker # 使用官方docker镜像 - volumes: # 将容器内目录挂载到宿主机 - - name: docker - path: /var/run/docker.sock # 挂载宿主机的docker - - name: config - path: /config - environment: # 获取到密文的docker用户名和密码 - DOCKER_USERNAME: - from_secret: docker_username - DOCKER_PASSWORD: - from_secret: docker_password - REGISTRY: - from_secret: registry - REGISTRY_NAMESPACE: - from_secret: registry_namespace - commands: # 定义在Docker容器中执行的shell命令 - - cat Dockerfile - - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml - - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml - - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml - - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml - - sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml - - sed -i 's/$PORTS_PORT/'"8081"'/' deployment.yml - - sed -i 's/$PROFILES/'"mosr"'/' nginx.conf - # docker登录,不能在脚本中登录,并且不能使用docker login -u -p - - echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin - - chmod +x docker.sh - - cat docker.sh - - sh docker.sh - # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 - - docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}') - when: - branch: - - prod - - - name: build-docker-dm # 制作docker镜像 - image: docker # 使用官方docker镜像 - volumes: # 将容器内目录挂载到宿主机 - - name: docker - path: /var/run/docker.sock # 挂载宿主机的docker - - name: config - path: /config - environment: # 获取到密文的docker用户名和密码 - DOCKER_USERNAME: - from_secret: docker_username - DOCKER_PASSWORD: - from_secret: docker_password - REGISTRY: - from_secret: registry - REGISTRY_NAMESPACE: - from_secret: registry_namespace - commands: # 定义在Docker容器中执行的shell命令 - - cat Dockerfile - - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml - - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml - - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml - - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml - - sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml - - sed -i 's/$PORTS_PORT/'"8082"'/' deployment.yml - - sed -i 's/$PROFILES/'"mosr-dm"'/' nginx.conf - # docker登录,不能在脚本中登录,并且不能使用docker login -u -p - - echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin - - chmod +x docker.sh - - cat docker.sh - - sh docker.sh - # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 - - docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}') - when: - branch: - - dm - - - name: drone-rancher-prod # rancher运行 - image: bitnami/kubectl:1.26.13-debian-11-r1 - volumes: # 将容器内目录挂载到宿主机 - - name: config - path: /app/config # 将kubectl 配置文件挂载出来 - commands: # 定义在Docker容器中执行的shell命令 - # 将deployment中定义的变量替换为drone中的内置变量 - - kubectl apply -f deployment.yml -n mosr --kubeconfig=/app/config/base-taishan-kubectl.yml - when: - branch: - - prod - - - - name: drone-rancher-dm # rancher运行 - image: bitnami/kubectl:1.26.13-debian-11-r1 - volumes: # 将容器内目录挂载到宿主机 - - name: config - path: /app/config # 将kubectl 配置文件挂载出来 - commands: # 定义在Docker容器中执行的shell命令 - # 将deployment中定义的变量替换为drone中的内置变量 - - kubectl apply -f deployment.yml -n mosr-dm --kubeconfig=/app/config/base-taishan-kubectl.yml - when: - branch: - - dm - - - -volumes: - - name: cache - host: - path: /home/npm/mosr-web - - name: config # k8s对接的配置文件 - host: - path: /home/kubect - - name: docker # 宿主机中的docker - host: - path: /var/run/docker.sock - -load: -trigger: - branch: - - prod - - dm - event: - - push +kind: pipeline +type: docker +name: mosr-web +platform: + os: linux + arch: arm64 +steps: + + + - name: build-package + image: node:18.19.0 + volumes: + - name: cache + path: /drone/src/node_modules + commands: + - export CI=false + - rm -rf /drone/src/node_modules/.acorn-import-phases-HnhoL33R + - rm -rf /drone/src/node_modules/acorn-import-phases + - mkdir -p /app/build/$DRONE_REPO_NAME + - rm -rf /app/build/$DRONE_REPO_NAME/* + - cp deployment.yml /app/build/$DRONE_REPO_NAME/ + - cp Dockerfile /app/build/$DRONE_REPO_NAME/ + - cp .dockerignore /app/build/$DRONE_REPO_NAME/ + - cp default.conf /app/build/$DRONE_REPO_NAME/ + - cp docker.sh /app/build/$DRONE_REPO_NAME/ + - cp nginx.conf /app/build/$DRONE_REPO_NAME/ + - npm -v + - node -v + - mkdir -p ./node_modules + - export NODE_MODULES_PATH=`pwd`/node_modules + - npm config set registry https://registry.npmmirror.com + - set NODE_OPTIONS=--openssl-legacy-provider + - npm install --legacy-peer-deps + - npm install codemirror +# - npm install patch-package +# - npx patch-package +# - npm info unplugin-icons + - npm list package-manager-detector + # - npm install unplugin-icons@latest @antfu/install-pkg@latest package-manager-detector@latest + - npm run build + - ls /app/build/$DRONE_REPO_NAME/ + - echo $NODE_MODULES_PATH + - cp -r dist /app/build/$DRONE_REPO_NAME + + + - name: build-docker-prod # 制作docker镜像 + image: 10.7.127.190:38080/docker/docker # 使用官方docker镜像 + volumes: # 将容器内目录挂载到宿主机 + - name: docker + path: /var/run/docker.sock # 挂载宿主机的docker + - name: config + path: /config + environment: # 获取到密文的docker用户名和密码 + DOCKER_USERNAME: + from_secret: docker_username + DOCKER_PASSWORD: + from_secret: docker_password + REGISTRY: + from_secret: registry + REGISTRY_NAMESPACE: + from_secret: registry_namespace + commands: # 定义在Docker容器中执行的shell命令 + - cat Dockerfile + - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml + - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml + - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml + - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml + - sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml + - sed -i 's/$PORTS_PORT/'"8081"'/' deployment.yml + - sed -i 's/$PROFILES/'"mosr"'/' nginx.conf + # docker登录,不能在脚本中登录,并且不能使用docker login -u -p + - echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin + - chmod +x docker.sh + - cat docker.sh + - sh docker.sh + # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 + - docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}') + when: + branch: + - prod + + - name: build-docker-dm # 制作docker镜像 + image: docker # 使用官方docker镜像 + volumes: # 将容器内目录挂载到宿主机 + - name: docker + path: /var/run/docker.sock # 挂载宿主机的docker + - name: config + path: /config + environment: # 获取到密文的docker用户名和密码 + DOCKER_USERNAME: + from_secret: docker_username + DOCKER_PASSWORD: + from_secret: docker_password + REGISTRY: + from_secret: registry + REGISTRY_NAMESPACE: + from_secret: registry_namespace + commands: # 定义在Docker容器中执行的shell命令 + - cat Dockerfile + - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml + - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml + - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml + - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml + - sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml + - sed -i 's/$PORTS_PORT/'"8082"'/' deployment.yml + - sed -i 's/$PROFILES/'"mosr-dm"'/' nginx.conf + # docker登录,不能在脚本中登录,并且不能使用docker login -u -p + - echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin + - chmod +x docker.sh + - cat docker.sh + - sh docker.sh + # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 + - docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}') + when: + branch: + - dm + + - name: drone-rancher-prod # rancher运行 + image: bitnami/kubectl:1.26.13-debian-11-r1 + volumes: # 将容器内目录挂载到宿主机 + - name: config + path: /app/config # 将kubectl 配置文件挂载出来 + commands: # 定义在Docker容器中执行的shell命令 + # 将deployment中定义的变量替换为drone中的内置变量 + - kubectl apply -f deployment.yml -n mosr --kubeconfig=/app/config/base-taishan-kubectl.yml + when: + branch: + - prod + + + - name: drone-rancher-dm # rancher运行 + image: bitnami/kubectl:1.26.13-debian-11-r1 + volumes: # 将容器内目录挂载到宿主机 + - name: config + path: /app/config # 将kubectl 配置文件挂载出来 + commands: # 定义在Docker容器中执行的shell命令 + # 将deployment中定义的变量替换为drone中的内置变量 + - kubectl apply -f deployment.yml -n mosr-dm --kubeconfig=/app/config/base-taishan-kubectl.yml + when: + branch: + - dm + + + +volumes: + - name: cache + host: + path: /home/npm/mosr-web + - name: config # k8s对接的配置文件 + host: + path: /home/kubect + - name: docker # 宿主机中的docker + host: + path: /var/run/docker.sock + +load: +trigger: + branch: + - prod + - dm + event: + - push From ba58089e944be991c80c730b3daa8a8eb42489eb Mon Sep 17 00:00:00 2001 From: zhangkaihuai Date: Tue, 22 Jul 2025 07:29:18 +0000 Subject: [PATCH 2/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.drone.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 08b5936..216a87b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -14,8 +14,6 @@ steps: path: /drone/src/node_modules commands: - export CI=false - - rm -rf /drone/src/node_modules/.acorn-import-phases-HnhoL33R - - rm -rf /drone/src/node_modules/acorn-import-phases - mkdir -p /app/build/$DRONE_REPO_NAME - rm -rf /app/build/$DRONE_REPO_NAME/* - cp deployment.yml /app/build/$DRONE_REPO_NAME/ From af2788583fe2a9680024e8e44de1948786f4ef6d Mon Sep 17 00:00:00 2001 From: zhangkaihuai Date: Tue, 22 Jul 2025 07:42:40 +0000 Subject: [PATCH 3/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.drone.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.drone.yml b/.drone.yml index 216a87b..5671710 100644 --- a/.drone.yml +++ b/.drone.yml @@ -14,8 +14,11 @@ steps: path: /drone/src/node_modules commands: - export CI=false + - npm cache clean --force + - rm -rf node_modules - mkdir -p /app/build/$DRONE_REPO_NAME - rm -rf /app/build/$DRONE_REPO_NAME/* + - rm -rf node_modules - cp deployment.yml /app/build/$DRONE_REPO_NAME/ - cp Dockerfile /app/build/$DRONE_REPO_NAME/ - cp .dockerignore /app/build/$DRONE_REPO_NAME/ From e2e4d3226f20dfaa7509f27abd8067fabd4945af Mon Sep 17 00:00:00 2001 From: zhangkaihuai Date: Tue, 22 Jul 2025 07:45:47 +0000 Subject: [PATCH 4/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.drone.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 5671710..916f609 100644 --- a/.drone.yml +++ b/.drone.yml @@ -14,8 +14,6 @@ steps: path: /drone/src/node_modules commands: - export CI=false - - npm cache clean --force - - rm -rf node_modules - mkdir -p /app/build/$DRONE_REPO_NAME - rm -rf /app/build/$DRONE_REPO_NAME/* - rm -rf node_modules From a620b248f4c1a24ab22717e799ed2a443f13b173 Mon Sep 17 00:00:00 2001 From: zhangkaihuai Date: Tue, 22 Jul 2025 07:52:07 +0000 Subject: [PATCH 5/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.drone.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 916f609..216a87b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -16,7 +16,6 @@ steps: - export CI=false - mkdir -p /app/build/$DRONE_REPO_NAME - rm -rf /app/build/$DRONE_REPO_NAME/* - - rm -rf node_modules - cp deployment.yml /app/build/$DRONE_REPO_NAME/ - cp Dockerfile /app/build/$DRONE_REPO_NAME/ - cp .dockerignore /app/build/$DRONE_REPO_NAME/