!Authelia
Buildkite Agent 是一款轻量、可靠的跨平台构建运行器,可轻松在自有基础设施上运行自动化构建任务。其主要职责包括:轮询 buildkite.com 获取任务、执行构建作业、报告作业状态码和输出日志,以及上传作业制品。
本自定义镜像基于 docker:dind 构建,提供 Docker-in-Docker (DinD) 功能,结合 Buildkite 支持 Authelia 持续集成 (CI) 流程中的自动化集成测试。当基础镜像 docker:dind 更新时,本镜像会自动重建。
本镜像采用 LinuxServer.io 团队开发的 https://github.com/linuxserver/docker-baseimage-alpine/%EF%BC%8C%E5%9C%A8%E6%AD%A4%E8%87%B4%E8%B0%A2%E3%80%82
docker:dind,允许在容器内运行 Docker 命令,满足构建过程中嵌套容器需求。docker:dind 更新时自动触发本镜像重建,确保底层依赖安全性。Docker 命令行部署
bashdocker create \ --name=buildkite1 \ -e BUILDKITE_AGENT_NAME=命名节点1 \ # 构建节点名称 -e BUILDKITE_AGENT_TOKEN=你的令牌 \ # Buildkite Agent 令牌 -e BUILDKITE_AGENT_TAGS=标签=值,更多标签=值 \ # 节点标签(逗号分隔) -e BUILDKITE_AGENT_PRIORITY=优先级 \ # 节点优先级 -e PUID=1000 \ # 用户ID(避免权限问题) -e PGID=1000 \ # 组ID(避免权限问题) -e TZ=Australia/Melbourne \ # 时区设置 -v <数据路径>/ssh:/buildkite/.ssh \ # SSH密钥目录(用于Git克隆) -v <数据路径>/cache:/buildkite/.cache \ # 构建缓存目录(共享Go、Lint缓存) -v <数据路径>/go:/buildkite/.go \ # Go依赖目录($GOPATH) -v <数据路径>/pnpm-store:/buildkite/.local/share/pnpm/store \ # pnpm缓存目录 -v <数据路径>/hooks:/buildkite/hooks \ # 自定义钩子目录(如环境变量注入) --restart unless-stopped \ # 非停止状态下自动重启 --privileged \ # 需特权模式以支持DinD authelia/buildkite
Docker Compose 部署
兼容 Docker Compose v2 架构。示例包含一个节点,可扩展为多节点配置(项目仓库中提供含三节点和本地 registry 缓存的完整示例)。
yaml--- version: "2.1" services: buildkite1: image: authelia/buildkite container_name: buildkite1 privileged: true # 启用特权模式 volumes: - <数据路径>/ssh:/buildkite/.ssh # SSH密钥目录 - <数据路径>/cache:/buildkite/.cache # 构建缓存目录 - <数据路径>/go:/buildkite/.go # Go依赖目录 - <数据路径>/pnpm-store:/buildkite/.local/share/pnpm/store # pnpm缓存目录 - <数据路径>/hooks:/buildkite/hooks # 自定义钩子目录 restart: unless-stopped # 自动重启策略 environment: - BUILDKITE_AGENT_NAME=命名节点1 # 节点名称 - BUILDKITE_AGENT_TOKEN=你的令牌 # Agent令牌 - BUILDKITE_AGENT_TAGS=标签=值,更多标签=值 # 节点标签 - BUILDKITE_AGENT_PRIORITY=优先级 # 节点优先级 - PUID=1000 # 用户ID - PGID=1000 # 组ID - TZ=Australia/Melbourne # 时区
| 参数 | 功能说明 |
|---|---|
-e BUILDKITE_AGENT_NAME=命名节点1 | Agent 名称,用于标识构建节点 |
-e BUILDKITE_AGENT_TOKEN=你的令牌 | Agent 令牌,Buildkite 项目的认证令牌 |
-e BUILDKITE_AGENT_TAGS=标签=值,更多标签=值 | 节点标签,格式为 键=值,逗号分隔,用于任务调度匹配 |
-e BUILDKITE_AGENT_PRIORITY=优先级 | 节点优先级,数值越高优先级越高 |
-e PUID=1000 | 用户 ID,用于解决主机与容器间文件权限冲突(可通过 id 用户名 命令获取当前用户 UID) |
-e PGID=1000 | 组 ID,同上(获取当前用户 GID) |
-e TZ=Australia/Melbourne | 时区设置,如 Asia/Shanghai(中国标准时间) |
-v /buildkite/.ssh | SSH 密钥目录,存放 id_rsa 和 id_rsa.pub,用于 Git 仓库克隆 |
-v /buildkite/.cache | 构建缓存目录,共享 Go 构建缓存、golangci-lint 缓存等 |
-v /buildkite/.go | Go 工作目录($GOPATH),共享依赖以加速构建 |
-v /buildkite/.local/share/pnpm/store | pnpm 存储目录,共享 Node.js 依赖缓存 |
-v /buildkite/hooks | Agent 钩子目录,如 environment 钩子可注入密钥(如 DOCKER_USERNAME、GITHUB_TOKEN) |
使用 -v 挂载卷时,主机与容器的用户/组 ID 可能不一致,导致权限错误。通过 PUID 和 PGID 指定与主机一致的 ID,可避免此问题。
获取当前用户 ID:
bashid 用户名 # 示例输出:uid=1000(用户) gid=1000(组) 组=1000(组)
将输出的 uid 和 gid 分别作为 PUID 和 PGID 的值。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务