
dzonder/semaphoreSemaphore 是一款轻量级开源CI/CD(持续集成/持续部署)平台,旨在简化软件开发流程中的自动化构建、测试和部署环节。本镜像基于官方最新版本 semaphoreui/semaphore:latest 构建,额外集成了 rsync 工具,增强了文件同步与跨节点传输能力,适用于需要在CI/CD流程中高效处理文件传输的场景。
semaphoreui/semaphore:latest 的全部核心功能,包括流水线配置、多阶段任务管理、并行执行、测试报告集成等。rsync 命令行工具,支持:
bashdocker pull semaphoreui/semaphore:latest
以下命令启动Semaphore容器,映射Web端口(默认8080)并持久化数据:
bashdocker run -d \ --name semaphore \ -p 8080:8080 \ -v /path/on/host/semaphore/data:/var/lib/semaphore \ semaphoreui/semaphore:latest
说明:
/path/on/host/semaphore/data为宿主机目录,用于持久化Semaphore的配置、任务记录等数据。
在Semaphore的任务配置(如 .semaphore/semaphore.yml)中,可直接调用 rsync 命令进行文件同步。示例场景:将构建产物同步至远程服务器:
yamlversion: v1.0 name: Sync build artifacts agent: machine: type: e1-standard-2 blocks: - name: Sync with remote server task: jobs: - name: rsync transfer commands: - checkout - ./build.sh # 构建应用,生成产物到 ./dist 目录 - rsync -avz ./dist/ user@remote-server:/opt/app/ # 使用rsync同步
注意:需确保容器内已配置远程服务器的SSH密钥(可通过挂载宿主机密钥文件或环境变量注入实现)。
Semaphore运行依赖部分环境变量(详细列表见官方文档),常用配置包括:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
SEMAPHORE_DB_HOST | 数据库主机地址(如PostgreSQL) | postgres |
SEMAPHORE_DB_USER | 数据库用户名 | semaphore |
SEMAPHORE_DB_PASSWORD | 数据库密码 | 空(需手动配置) |
SEMAPHORE_PORT | Web服务端口 | 8080 |
建议通过 -v 参数挂载以下目录(根据实际需求调整):
/var/lib/semaphore:核心数据目录(配置、任务记录等)/root/.ssh:SSH密钥目录(用于rsync远程认证)latest 标签构建,建议定期拉取更新以同步官方功能修复与安全补丁。http://<容器IP>:8080 完成管理员账户设置及基础配置(参考官方初始化指南)。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务