kind: pipeline type: docker name: nodejs-host-network-pipeline steps: # 第一步:准备环境并安装依赖 - name: install-dependencies image: node:18-bullseye commands: # 安装iproute2工具 - apt-get update && apt-get install -y iproute2 # 验证ip命令是否可用 - ip -V # 安装项目依赖 - npm install volumes: - name: node_modules path: /app/node_modules # 第三步:构建Docker镜像 - name: build-image image: docker:20.10 volumes: - name: docker-socket path: /var/run/docker.sock - name: node_modules path: /app/node_modules commands: - docker build -t node-app:${DRONE_COMMIT_SHA:0:8} -f Dockerfile . # 第四步:使用host网络运行应用 - name: run-with-host-network image: docker:20.10 volumes: - name: docker-socket path: /var/run/docker.sock commands: - | docker run -d \ --restart always \ --network host \ --name node-app-${DRONE_COMMIT_SHA:0:8} \ node-app:${DRONE_COMMIT_SHA:0:8} when: branch: - main # 定义卷用于共享依赖和Docker socket volumes: - name: node_modules temp: {} - name: docker-socket host: path: /var/run/docker.sock # 构建触发条件 trigger: branch: - main - develop event: - push - pull_request