增加hello-world源码,并删除 drone 配置文件
This commit is contained in:
-141
@@ -1,141 +0,0 @@
|
|||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: build-multiarch-docker
|
|
||||||
|
|
||||||
# 匹配 Runner 标签
|
|
||||||
node:
|
|
||||||
runtime: docker
|
|
||||||
arch: amd64
|
|
||||||
multiarch: true
|
|
||||||
|
|
||||||
# 触发条件
|
|
||||||
trigger:
|
|
||||||
include:
|
|
||||||
- event: push
|
|
||||||
branch: [main, release/*]
|
|
||||||
- event: tag
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: docker-sock
|
|
||||||
host:
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
|
|
||||||
clone:
|
|
||||||
disable: true
|
|
||||||
depth: 1
|
|
||||||
tags: true
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: diagnose
|
|
||||||
image: docker:29.0-cli
|
|
||||||
volumes:
|
|
||||||
- name: docker-sock
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
commands:
|
|
||||||
- apk add --no-cache curl jq 2>/dev/null || true
|
|
||||||
- echo "=== Docker CLI ==="; docker version
|
|
||||||
- echo "=== Docker Engine API ==="; curl -s --unix-socket /var/run/docker.sock http://localhost/version | jq -r '.ApiVersion'
|
|
||||||
|
|
||||||
- name: debug engine api
|
|
||||||
image: curlimages/curl
|
|
||||||
volumes:
|
|
||||||
- name: docker-sock
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
commands:
|
|
||||||
- curl --unix-socket /var/run/docker.sock http://localhost/version
|
|
||||||
|
|
||||||
- name: debug docker version
|
|
||||||
image: docker:29.0-cli
|
|
||||||
environment:
|
|
||||||
DOCKER_API_VERSION: "1.45"
|
|
||||||
DOCKER_HOST: unix:///var/run/docker.sock
|
|
||||||
volumes:
|
|
||||||
- name: docker-sock
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
commands:
|
|
||||||
- which docker
|
|
||||||
- docker --version
|
|
||||||
- docker version
|
|
||||||
|
|
||||||
# 登录容器仓库(使用 docker login)
|
|
||||||
- name: registry login
|
|
||||||
image: docker:29.0-cli # 使用官方 Docker CLI 镜像
|
|
||||||
volumes:
|
|
||||||
- name: docker-sock
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
environment:
|
|
||||||
REGISTRY_SERVER: "swr.cn-north-4.myhuaweicloud.com"
|
|
||||||
REGISTRY_USER:
|
|
||||||
from_secret: secrets/data/swr_username
|
|
||||||
REGISTRY_PASSWORD:
|
|
||||||
from_secret: secrets/swr_password
|
|
||||||
commands:
|
|
||||||
- |
|
|
||||||
echo "Logging into registry..."
|
|
||||||
echo "=== Debug Variables ==="
|
|
||||||
echo "REGISTRY_SERVER: $REGISTRY_SERVER"
|
|
||||||
echo "REGISTRY_USER: ${REGISTRY_USER:-empty}"
|
|
||||||
echo "REGISTRY_PASSWORD: ${REGISTRY_PASSWORD:-empty}"
|
|
||||||
echo "========================"
|
|
||||||
echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY_SERVER" -u "$REGISTRY_USER" --password-stdin || {
|
|
||||||
echo "Registry login failed!"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# 构建并推送镜像(使用 docker build/push)
|
|
||||||
- name: build and push
|
|
||||||
image: docker:29.0-cli
|
|
||||||
volumes:
|
|
||||||
- name: docker-sock
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
environment:
|
|
||||||
REGISTRY_REPO: "swr.cn-north-4.myhuaweicloud.com/colovu/scratch"
|
|
||||||
DRONE_TAG: ${DRONE_TAG}
|
|
||||||
DRONE_COMMIT_SHA: ${DRONE_COMMIT_SHA}
|
|
||||||
DRONE_BRANCH: ${DRONE_BRANCH}
|
|
||||||
commands:
|
|
||||||
- |
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
if [ -n "${DRONE_TAG:-}" ]; then
|
|
||||||
IMAGE_TAG="$DRONE_TAG"
|
|
||||||
else
|
|
||||||
IMAGE_TAG="${DRONE_COMMIT_SHA:0:8:-unknown}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "=== Debug Variables ==="
|
|
||||||
echo "DRONE_TAG: ${DRONE_TAG:-empty}"
|
|
||||||
echo "DRONE_COMMIT_SHA: ${DRONE_COMMIT_SHA:-empty}"
|
|
||||||
echo "DRONE_BRANCH: ${DRONE_BRANCH:-empty}"
|
|
||||||
echo "REGISTRY_REPO: ${REGISTRY_REPO:-empty}"
|
|
||||||
echo "IMAGE_TAG: $IMAGE_TAG"
|
|
||||||
echo "========================"
|
|
||||||
|
|
||||||
echo "Building image..."
|
|
||||||
docker build -t "${REGISTRY_REPO}:${IMAGE_TAG}" .
|
|
||||||
|
|
||||||
echo "Pushing image..."
|
|
||||||
docker push "${REGISTRY_REPO}:${IMAGE_TAG}"
|
|
||||||
|
|
||||||
# 可选:打 latest 标签(仅 main 分支)
|
|
||||||
if [ "${DRONE_BRANCH}" = "main" ]; then
|
|
||||||
docker tag "${REGISTRY_REPO}:${IMAGE_TAG}" "${REGISTRY_REPO}:latest"
|
|
||||||
docker push "${REGISTRY_REPO}:latest"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Image pushed: ${REGISTRY_REPO}:${IMAGE_TAG}"
|
|
||||||
|
|
||||||
# 清理步骤
|
|
||||||
- name: cleanup
|
|
||||||
image: docker:29.0-cli
|
|
||||||
volumes:
|
|
||||||
- name: docker-sock
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
commands:
|
|
||||||
- |
|
|
||||||
echo "Logging out of registry..."
|
|
||||||
docker logout swr.cn-north-4.myhuaweicloud.com || true
|
|
||||||
echo "Cleaning up unused images..."
|
|
||||||
docker system prune -af || true
|
|
||||||
when:
|
|
||||||
status: [success, failure]
|
|
||||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1,6 @@
|
|||||||
|
package main
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println("Hello from scratch!")
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user