
drinternet/rsync基于alpine的轻量Docker镜像,适用于rsync和ssh部署场景。
该镜像主要有两类用途:一是作为GitLab CI的部署镜像,二是作为其他镜像的基础镜像。
在.gitlab-ci.yml中直接引用镜像,示例配置如下:
ymlimage: drinternet/rsync:1.0.1 ... before_script: - source agent-autostart "$CI_PROJECT_ID-$CI_PIPELINE_ID-$_CI_CONCURRENT_ID" - hosts-add "$SSH_KNOWN_HOSTS" after_script: - agent-stop "$CI_PROJECT_ID-$CI_PIPELINE_ID-$_CI_CONCURRENT_ID"
在Dockerfile中引用该镜像作为基础,示例如下:
dockerfileFROM drinternet/rsync:1.0.1 COPY some/file or/whatever
镜像包含多个Shell脚本,用于管理SSH代理和known_hosts文件。
启动SSH代理(若未启动,通过SSH_AGENT_PID或代理ID文件判断)。
source执行。bashsource agent-start "default"
停止SSH代理(若已启动,通过SSH_AGENT_PID或代理ID文件判断)。
bashagent-stop "my-agent-name"
向当前运行的SSH代理添加密钥(从标准输入读取密钥,代理由SSH_AGENT_PID指定)。
启动SSH代理并从环境变量SSH_PRIVATE_KEY加载私钥。
source执行。清空known_hosts文件并设置正确权限。
向known_hosts文件添加条目并确保权限正确。
大部分数字标签对应脚本版本号,另有特殊标签用于标识构建阶段:
staging:master分支的最新构建版本。*-rc:发布候选版本,功能基本稳定,可能存在小幅调整。*-beta:测试版本,需进一步测试,功能变动较小。*-alpha:预览版本,功能可能频繁变动。ymlimage: drinternet/rsync:1.0.1 stages: - deploy before_script: - source agent-autostart "$CI_PROJECT_ID-$CI_PIPELINE_ID-$_CI_CONCURRENT_ID" - hosts-add "$SSH_KNOWN_HOSTS" after_script: - agent-stop "$CI_PROJECT_ID-$CI_PIPELINE_ID-$_CI_CONCURRENT_ID" deploy: stage: deploy script: - rsync -zrSlhaO --chmod=D2775,F664 --delete-after . $FTP_USER@$FTP_HOST:/var/www/deployment/



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务