如何在jenkins的execute shell中使用credentials进行docker登录
在Jenkins中,可以使用Credentials插件来管理Docker Hub的认证信息。
使用 Credentials Binding Plugin
插件 可以将 Jenkins 的 Credentials 绑定到环境变量中,这样你就可以在 Execute Shell
步骤中使用这些变量。以下是详细的步骤:
1. 添加一个docker的credentials
Treat username as secret
勾选这个选项在日志打印时会同时隐藏用户名,打印出***
2. 安装 Credentials Binding Plugin
确保你的 Jenkins 已经安装了 Credentials Binding Plugin
。如果没有安装,可以按照以下步骤安装:
- 进入 Jenkins 管理界面。
- 点击
Manage Jenkins
->Manage Plugins
。 - 在
Available
选项卡中搜索Credentials Binding Plugin
。 - 选中并安装该插件。
3. 配置 Jenkins 任务使用 Credentials Binding
- 在 Jenkins 任务配置中绑定 Credentials:
- 打开你的 Jenkins 任务,点击
Configure
进入配置页面。 - 在页面中找到
Build Environment
部分,并勾选Use secret text(s) or file(s)
或Use secret text(s) or file(s) in builds
。 - 点击
Add
,选择Username and password (separated)
。 - 在
Username Variable
和Password Variable
中分别填写你想要的环境变量名称,比如DOCKER_LOGIN_USER
和DOCKER_LOGIN_PWD
。 - 在
Credentials
下拉列表中,选择你预先创建的aliyun-registry-account
(或其他) Credentials ID。
- 打开你的 Jenkins 任务,点击
4. 在 Execute Shell
中使用这些变量
现在你可以在 Execute Shell
中使用这些被注入的环境变量:
# 使用环境变量来登录 Docker Registry
docker login registry.cn-hangzhou.aliyuncs.com -u "$DOCKER_LOGIN_USER" -p "$DOCKER_LOGIN_PWD"
# 构建 Docker 镜像
docker build -t registry.cn-hangzhou.aliyuncs.com/your-repo/your-image-name:latest .
# 推送 Docker 镜像到阿里云镜像中心
docker push registry.cn-hangzhou.aliyuncs.com/your-repo/your-image-name:latest
总结
通过使用 Credentials Binding Plugin
,你可以将 Jenkins 的 Credentials 安全地注入到环境变量中,并在 Execute Shell
中使用这些变量来进行 Docker 登录和其他操作。这种方法既能保证安全性,又能避免在脚本中暴露敏感信息。