Files
SmartOpsWeb/.drone.yml
2024-10-03 17:25:47 +08:00

63 lines
2.1 KiB
YAML

kind: pipeline
type: docker
name: SmartOpsWeb
steps:
- name: build-package
image: registry.cn-chengdu.aliyuncs.com/claywang/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.npmmirror.com
# - set NODE_OPTIONS=--openssl-legacy-provider
# - npm install
- npm run build
- echo $NODE_MODULES_PATH
- cp -r dist /app/build/$DRONE_REPO_NAME
- name: build-docker # 制作docker镜像
image: registry.cn-chengdu.aliyuncs.com/claywang/docker # 使用官方docker镜像
volumes: # 将容器内目录挂载到宿主机
- name: docker
path: /var/run/docker.sock # 挂载宿主机的docker
commands: # 定义在Docker容器中执行的shell命令
- 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
# docker登录,不能在脚本中登录,并且不能使用docker login -u -p
- chmod +x docker.sh
- sh docker.sh
# 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足
# - docker run -d -p 8080:80
# - docker rmi -f $(docker imag.es | grep $DRONE_REPO_NAME | awk '{print $3}')
volumes:
- name: cache
host:
path: /home/SmartOpsWeb/cache
- name: config # k8s对接的配置文件
- name: docker # 宿主机中的docker
host:
path: /var/run/docker.sock
trigger:
branch:
- test
event:
- push