You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
kind: pipeline
|
|
|
|
type: docker
|
|
|
|
name: default
|
|
|
|
|
|
|
|
# --------------------------
|
|
|
|
# 共享配置(避免重复定义)
|
|
|
|
# --------------------------
|
|
|
|
volumes:
|
|
|
|
- name: docker-sock
|
|
|
|
host:
|
|
|
|
path: /var/run/docker.sock
|
|
|
|
- name: go-mod-cache
|
|
|
|
temp: {}
|
|
|
|
- name: go-build-cache # Go 编译缓存(加速构建)
|
|
|
|
temp: {}
|
|
|
|
|
|
|
|
clone:
|
|
|
|
disable: true
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: clone
|
|
|
|
image: alpine/git:latest
|
|
|
|
pull: never
|
|
|
|
volumes:
|
|
|
|
- name: build
|
|
|
|
path: /go
|
|
|
|
commands:
|
|
|
|
- pwd
|
|
|
|
- git clone http://47.112.165.44:3000/seekm/prdUploader.git
|
|
|
|
|
|
|
|
- name: build
|
|
|
|
image: golang:1.21-alpine
|
|
|
|
pull: never
|
|
|
|
environment:
|
|
|
|
GO111MODULE: on
|
|
|
|
CGO_ENABLED: 0
|
|
|
|
volumes:
|
|
|
|
- name: build
|
|
|
|
path: /go
|
|
|
|
commands:
|
|
|
|
- echo "Building binary..."
|
|
|
|
- pwd
|
|
|
|
- go build -o myapp -ldflags "-X main.RunMode=test -s -w" # 压缩符号表
|
|
|
|
- ls -lh myapp
|
|
|
|
|
|
|
|
# --------------------------
|
|
|
|
# [Deploy 阶段]
|
|
|
|
# --------------------------
|
|
|
|
- name: deploy
|
|
|
|
image: docker:24.0-cli
|
|
|
|
pull: never
|
|
|
|
volumes:
|
|
|
|
- name: docker-sock
|
|
|
|
path: /var/run/docker.sock
|
|
|
|
- name: go-build-cache # 复用之前的缓存卷(如有需要)
|
|
|
|
path: /app
|
|
|
|
environment:
|
|
|
|
DOCKER_HOST: unix:///var/run/docker.sock # 显式指定 Docker 连接
|
|
|
|
commands:
|
|
|
|
- echo "Starting deployment..."
|
|
|
|
- docker rm -f product_uploader || true
|
|
|
|
- docker build -t prduploader:test-${DRONE_COMMIT_SHA:0:8} .
|
|
|
|
- docker run -d \
|
|
|
|
--name product_uploader \
|
|
|
|
-p 11000:11000 \
|
|
|
|
--restart on-failure \
|
|
|
|
--memory 512m \
|
|
|
|
prduploader:test-${DRONE_COMMIT_SHA:0:8}
|