![](/img/trans.png)
[英]How to perform Rolling update and Rollback of deployment in Kubernetes using fabric8 java client API?
[英]Push docker image to remote registry using fabric8 java client
我正在嘗試使用適用於Java的fabric8泊塢窗客戶端將泊塢窗映像推送到dockerhub。
嘗試推送圖像時出現以下錯誤。
推送引用存儲庫[docker.io/anuruddhal/hello-world-docker]故障:拒絕:請求的對資源的訪問被拒絕
如何正確驗證客戶端?
以下是我的代碼:
public static void pushImage(DockerModel dockerModel) throws InterruptedException, IOException {
String dockerUrl = "unix:///var/run/docker.sock";
String image = dockerModel.getName();
String registry = "index.docker.io";
String namespace = "anuruddhal";
String repositoryName = registry + "/" + namespace + "/" + image;
Config config = new ConfigBuilder()
.withDockerUrl(dockerUrl)
.withUsername("anuruddhal")
.withPassword("xxxxxxxxx")
.build();
DockerClient client = new DefaultDockerClient(config);
final CountDownLatch pushDone = new CountDownLatch(1);
client.image().withName(image).tag().inRepository(repositoryName).force().withTagName("1.0");
OutputHandle handle = client.image().withName(repositoryName).push()
.usingListener(new EventListener() {
@Override
public void onSuccess(String message) {
printSuccess("Success:" + message);
pushDone.countDown();
}
@Override
public void onError(String messsage) {
printError("Failure:" + messsage);
pushDone.countDown();
}
@Override
public void onError(Throwable t) {
printError(t.getMessage());
pushDone.countDown();
}
@Override
public void onEvent(String event) {
printDebug(event);
}
})
.withTag("1.0")
.toRegistry();
pushDone.await();
handle.close();
client.close();
}
我想到了。
您需要將auth config和注冊表URL一起添加到客戶端。
AuthConfig authConfig = new AuthConfigBuilder().withUsername("anuruddhal").withPassword
("xxxxxxx")
.build();
Config config = new ConfigBuilder()
.withDockerUrl(dockerUrl)
.addToAuthConfigs("index.docker.io", authConfig)
.build();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.