簡體   English   中英

Jenkins 管道中的 Docker 憑證

[英]Docker credentials in Jenkins pipeline

我正在嘗試創建一個基本的 Jenkins 管道,該管道創建一個 Docker 圖像並推送到 Docker 集線器。

我找不到如何將 Docker 集線器憑據傳遞給管道 bash 腳本

所以我在 Jenkins 中創建了帶有“dockerlogin”ID 的憑證。

我的管道腳本如下。

cd /home/jenkins-workspace/workspace/Demo
docker build -t test123/demo:latest . 
docker login --username=MYUSERNAME --password=MYPASSWORD
docker push test123/demo:latest

如何將此憑據(用戶名和密碼)傳遞給 bash 腳本?

謝謝!

To push an image to Docker Hub, you must first name your local image using your Docker Hub username and the repository name that you created through Docker Hub on the web.

將鏡像推送到 Docker Hub 時,您必須指定 Docker Hub 用戶名作為鏡像名稱的一部分。

 docker push <hub-user>/<repo-name>:<tag>

這是因為 Docker Hub 按用戶名組織存儲庫。 在我的帳戶下創建的任何存儲庫都在 Docker 映像名稱中包含我的用戶名。

示例:如果我的 dockerhub 用戶 ID 是 mydockerhubuser,則:

# docker build -t <your-dockerhub-username>/push-example .
docker build -t mydockerhubuser/demo:latest .
# Enter your DOCKER_USERNAME and DOCKER_PASSWORD
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
# docker push <username>/<tagname>
docker push mydockerhubuser/demo:latest 

欲了解更多信息: https://docs.docker.com/docker-hub/repos/
對於非交互式登錄,您還可以參考: https://docs.docker.com/engine/reference/commandline/login/#provide-a-password-using-stdin

要以非交互方式運行 docker 登錄命令,您可以設置--password-stdin標志以通過 STDIN 提供密碼。 使用 STDIN 可以防止密碼出現在 shell 的歷史記錄或日志文件中。
以下示例從文件中讀取密碼,並使用 STDIN 將其傳遞給 docker 登錄命令:
cat ~/my_password.txt | docker login --username mydockerhubuser --password-stdin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM