package org.arquillian.cube.containerobject; import org.arquillian.cube.HostIp; import org.arquillian.cube.HostPort; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.GenericArchive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.StringAsset; import org.jboss.shrinkwrap.descriptor.api.Descriptors; import org.jboss.shrinkwrap.descriptor.api.docker.DockerDescriptor; @Cube(value = "pingpong", portBinding = "5000->8080/tcp") public class PingPongContainer { @HostIp String dockerHost; @HostPort(8080) private int port; @CubeDockerFile public static Archive<?> createContainer() { String dockerDescriptor = Descriptors.create(DockerDescriptor.class) .from("jonmorehouse/ping-pong") .expose(8080) .exportAsString(); return ShrinkWrap.create(GenericArchive.class) .add(new StringAsset(dockerDescriptor), "Dockerfile"); } public int getConnectionPort() { return port; } public String getDockerHost() { return this.dockerHost; } }