From f98103c61fe7cf1658c8923a2cb03ce270474bd4 Mon Sep 17 00:00:00 2001 From: clay <20932067@zju.edu.cn> Date: Fri, 29 Mar 2024 18:10:26 +0800 Subject: [PATCH] =?UTF-8?q?build=20:=20=E7=8E=AF=E5=A2=83=E5=8C=BA?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone-mosr.yml | 94 +++++++++++++++++++++++++++++++++++++++++++++++++ .drone.yml | 3 ++ deployment.yml | 4 +-- nginx.conf | 2 +- 4 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 .drone-mosr.yml diff --git a/.drone-mosr.yml b/.drone-mosr.yml new file mode 100644 index 0000000..012fa81 --- /dev/null +++ b/.drone-mosr.yml @@ -0,0 +1,94 @@ +kind: pipeline +type: docker +name: mosr-web +platform: + os: linux + arch: arm64 +steps: + - name: build-package + image: node:16.20.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 + - mkdir -p ./node_modules + - export NODE_MODULES_PATH=`pwd`/node_modules + #- npm config set registry https://registry.npm.taobao.org + #- set NODE_OPTIONS=--openssl-legacy-provider +# - npm install + - npm run build + - ls /app/build/$DRONE_REPO_NAME/ + - echo $NODE_MODULES_PATH + - cp -r dist /app/build/$DRONE_REPO_NAME + + + + - name: build-docker # 制作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/$PROFILES/'"mosr-dm"'/' nginx.conf + - 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 + # 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}') + + + - name: drone-rancher # 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 + +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 + +trigger: + branch: + - prod + event: + - push diff --git a/.drone.yml b/.drone.yml index 5606aa1..10bd29e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -55,6 +55,9 @@ steps: - 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 diff --git a/deployment.yml b/deployment.yml index c3fda53..3f1ab83 100644 --- a/deployment.yml +++ b/deployment.yml @@ -5,8 +5,8 @@ metadata: spec: type: NodePort ports: - - name: damdsdha - nodePort: 8081 + - name: $PORTS_NAME + nodePort: $PORTS_PORT port: 80 protocol: TCP targetPort: 80 diff --git a/nginx.conf b/nginx.conf index 899dd17..63ac336 100644 --- a/nginx.conf +++ b/nginx.conf @@ -30,7 +30,7 @@ http { listen [::]:80; location /api { - proxy_pass http://gateway.mosr.svc.cluster.local:8080; + proxy_pass http://gateway.$PROFILES.svc.cluster.local:8080; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port;