X Tutup
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package com.github.dockerjava.api.command;

import com.github.dockerjava.api.model.AuthConfigurations;
import com.github.dockerjava.api.model.BuildResponseItem;

import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import java.io.File;
import java.io.InputStream;
import java.net.URI;
import java.util.Map;
import java.util.Set;

import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;

import com.github.dockerjava.api.model.AuthConfigurations;
import com.github.dockerjava.api.model.BuildResponseItem;

/**
* Build an image from Dockerfile.
* <p>
Expand Down Expand Up @@ -145,6 +144,12 @@ public interface BuildImageCmd extends AsyncDockerCmd<BuildImageCmd, BuildRespon
@CheckForNull
String getTarget();

/**
* @since {@link RemoteApiVersion#VERSION_1_28}
*/
@CheckForNull
Set<String> getExtraHosts();

// setters

/**
Expand Down Expand Up @@ -223,6 +228,11 @@ public interface BuildImageCmd extends AsyncDockerCmd<BuildImageCmd, BuildRespon
*/
BuildImageCmd withTarget(String target);

/**
* @since {@link RemoteApiVersion#VERSION_1_28}
*/
BuildImageCmd withExtraHosts(Set<String> extraHosts);

@Override
default BuildImageResultCallback start() {
return exec(new BuildImageResultCallback());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ public class RemoteApiVersion implements Serializable {

public static final RemoteApiVersion VERSION_1_26 = RemoteApiVersion.create(1, 26);
public static final RemoteApiVersion VERSION_1_27 = RemoteApiVersion.create(1, 27);
public static final RemoteApiVersion VERSION_1_28 = RemoteApiVersion.create(1, 28);
public static final RemoteApiVersion VERSION_1_29 = RemoteApiVersion.create(1, 29);
public static final RemoteApiVersion VERSION_1_30 = RemoteApiVersion.create(1, 30);
public static final RemoteApiVersion VERSION_1_31 = RemoteApiVersion.create(1, 31);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
package com.github.dockerjava.core.command;

import static com.google.common.base.Preconditions.checkNotNull;
import com.github.dockerjava.api.command.BuildImageCmd;
import com.github.dockerjava.api.model.AuthConfigurations;
import com.github.dockerjava.api.model.BuildResponseItem;
import com.github.dockerjava.core.dockerfile.Dockerfile;
import com.github.dockerjava.core.util.FilePathUtil;

import javax.annotation.CheckForNull;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
Expand All @@ -10,13 +15,7 @@
import java.util.Map;
import java.util.Set;

import com.github.dockerjava.api.command.BuildImageCmd;
import com.github.dockerjava.api.model.AuthConfigurations;
import com.github.dockerjava.api.model.BuildResponseItem;
import com.github.dockerjava.core.dockerfile.Dockerfile;
import com.github.dockerjava.core.util.FilePathUtil;

import javax.annotation.CheckForNull;
import static com.google.common.base.Preconditions.checkNotNull;

/**
* Build an image from Dockerfile.
Expand Down Expand Up @@ -72,6 +71,8 @@ public class BuildImageCmdImpl extends AbstrAsyncDockerCmd<BuildImageCmd, BuildR

private String target;

private Set<String> extraHosts;

public BuildImageCmdImpl(BuildImageCmd.Exec exec) {
super(exec);
}
Expand Down Expand Up @@ -218,6 +219,11 @@ public Long getShmsize() {
return shmsize;
}

@Override
public Set<String> getExtraHosts() {
return extraHosts;
}

// setters

/**
Expand Down Expand Up @@ -402,6 +408,12 @@ public BuildImageCmd withTarget(String target) {
return this;
}

@Override
public BuildImageCmd withExtraHosts(Set<String> extraHosts) {
this.extraHosts = extraHosts;
return this;
}

@Override
public void close() {
super.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,10 @@ protected Void execute0(BuildImageCmd command, ResultCallback<BuildResponseItem>
webTarget = webTarget.queryParam("target", command.getTarget());
}

if (command.getExtraHosts() != null) {
webTarget = webTarget.queryParamsSet("extrahosts", command.getExtraHosts());
}

LOGGER.trace("POST: {}", webTarget);

InvocationBuilder builder = resourceWithOptionalAuthConfig(command, webTarget.request())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import static com.github.dockerjava.core.RemoteApiVersion.VERSION_1_21;
import static com.github.dockerjava.core.RemoteApiVersion.VERSION_1_23;
import static com.github.dockerjava.core.RemoteApiVersion.VERSION_1_27;
import static com.github.dockerjava.core.RemoteApiVersion.VERSION_1_28;
import static com.github.dockerjava.junit.DockerMatchers.isGreaterOrEqual;
import static org.apache.commons.io.FileUtils.writeStringToFile;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down Expand Up @@ -331,6 +332,23 @@ public void quiet() {
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
}

@Test
public void extraHosts() {
assumeThat(dockerRule, isGreaterOrEqual(VERSION_1_28));

File baseDir = fileFromBuildTestResource("labels");

String imageId = dockerRule.getClient()
.buildImageCmd(baseDir)
.withExtraHosts(new HashSet<>(Arrays.asList("host1")))
.start()
.awaitImageId();

InspectImageResponse inspectImageResponse = dockerRule.getClient().inspectImageCmd(imageId).exec();
assertThat(inspectImageResponse, not(nullValue()));
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
}

public void dockerfileNotInBaseDirectory() throws Exception {
File baseDirectory = fileFromBuildTestResource("dockerfileNotInBaseDirectory");
File dockerfile = fileFromBuildTestResource("dockerfileNotInBaseDirectory/dockerfileFolder/Dockerfile");
Expand Down
X Tutup