com.spotify.docker.client.DockerException Java Examples
The following examples show how to use
com.spotify.docker.client.DockerException.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DockerContainerManager.java From simpleci with MIT License | 6 votes |
public String runContainer(ContainerConfig.Builder containerConfigBuilder, String containerName) throws DockerException { try { final ContainerConfig containerConfig = containerConfigBuilder.build(); final ContainerCreation creation; creation = dockerClient.createContainer(containerConfig, containerName); final String id = creation.id(); dockerClient.startContainer(id); return id; } catch (InterruptedException e) { logger.error("", e); } return null; }
Example #2
Source File: DockerSshExecutor.java From simpleci with MIT License | 5 votes |
private String runContainerRecursice(DockerContainer container, long jobId) throws DockerException { DockerContainerManager.RunResult runResult = containerManager.runContainerRecursive(container, jobId); executorContext.containers.addAll(runResult.containers); if(!runResult.success) { throw runResult.e; } return runResult.containers.get(runResult.containers.size() - 1); }
Example #3
Source File: DockerContainerManager.java From simpleci with MIT License | 5 votes |
public void stopAndRemove(String containerId) { try { dockerClient.stopContainer(containerId, 10); dockerClient.removeContainer(containerId); } catch (DockerException | InterruptedException e) { logger.error("", e); } }
Example #4
Source File: DockerContainerManager.java From simpleci with MIT License | 5 votes |
public String containerIp(String buildContainerId) { try { return dockerClient.inspectContainer(buildContainerId).networkSettings().ipAddress(); } catch (DockerException | InterruptedException e) { logger.error("", e); } return null; }
Example #5
Source File: Deployer.java From MineCloud with ISC License | 4 votes |
public static boolean deployServer(Server server) { Credentials mongoCreds = MineCloud.instance().mongo().credentials(); Credentials redisCreds = MineCloud.instance().redis().credentials(); String name = server.type().name() + server.number(); World defaultWorld = server.type().defaultWorld(); ContainerConfig config = ContainerConfig.builder() .hostname(name) .image("minecloud/server") .openStdin(true) .env(new EnvironmentBuilder() .append("mongo_hosts", mongoCreds.formattedHosts()) .append("mongo_username", mongoCreds.username()) .append("mongo_password", new String(mongoCreds.password())) .append("mongo_database", mongoCreds.database()) .append("redis_host", redisCreds.hosts()[0]) .append("redis_password", new String(redisCreds.password())) .append("SERVER_MOD", server.type().mod()) .append("DEDICATED_RAM", String.valueOf(server.type().dedicatedRam())) .append("MAX_PLAYERS", String.valueOf(server.type().maxPlayers())) .append("server_id", server.entityId()) .append("DEFAULT_WORLD", defaultWorld.name()) .append("DEFAULT_WORLD_VERSION", defaultWorld.version()) .build()) .build(); ContainerCreation creation; try { DockerClient client = MineCloudDaemon.instance().dockerClient(); try { ContainerInfo info = client.inspectContainer(name); if (info.state().running()) { client.killContainer(name); } client.removeContainer(info.id()); } catch (ContainerNotFoundException ignored) {} creation = client.createContainer(config, name); client.startContainer(creation.id(), HostConfig.builder() .binds("/mnt/minecloud:/mnt/minecloud") .publishAllPorts(true) .build()); } catch (InterruptedException | DockerException ex) { MineCloud.logger().log(Level.SEVERE, "Was unable to create server with type " + server.type().name(), ex); return false; } MineCloud.logger().info("Started server " + server.name() + " with container id " + server.containerId()); return true; }
Example #6
Source File: Deployer.java From MineCloud with ISC License | 4 votes |
public static Bungee deployBungeeCord(Network network, BungeeType type) { DockerClient client = MineCloudDaemon.instance().dockerClient(); BungeeRepository repository = MineCloud.instance().mongo().repositoryBy(Bungee.class); Node node = MineCloudDaemon.instance().node(); Bungee bungee = new Bungee(); if (repository.count("_id", node.publicIp()) > 0) { MineCloud.logger().log(Level.WARNING, "Did not create bungee on this node; public ip is already in use"); return null; } bungee.setId(node.publicIp()); Credentials mongoCreds = MineCloud.instance().mongo().credentials(); Credentials redisCreds = MineCloud.instance().redis().credentials(); ContainerConfig config = ContainerConfig.builder() .image("minecloud/bungee") .hostname("bungee" + bungee.publicIp()) .exposedPorts("25565") .openStdin(true) .env(new EnvironmentBuilder() .append("mongo_hosts", mongoCreds.formattedHosts()) .append("mongo_username", mongoCreds.username()) .append("mongo_password", new String(mongoCreds.password())) .append("mongo_database", mongoCreds.database()) .append("redis_host", redisCreds.hosts()[0]) .append("redis_password", new String(redisCreds.password())) .append("DEDICATED_RAM", String.valueOf(type.dedicatedRam())) .append("bungee_id", node.publicIp()) .build()) .build(); HostConfig hostConfig = HostConfig.builder() .binds("/mnt/minecloud:/mnt/minecloud") .portBindings(new HashMap<String, List<PortBinding>>() {{ put("25565", Arrays.asList(PortBinding.of(node.publicIp(), 25565))); // I'm sorry }}) .publishAllPorts(true) .build(); try { ContainerInfo info = client.inspectContainer("bungee"); if (info.state().running()) { client.killContainer("bungee"); } client.removeContainer(info.id()); } catch (DockerException | InterruptedException ignored) {} ContainerCreation creation; try { creation = client.createContainer(config, type.name()); client.startContainer(creation.id(), hostConfig); } catch (InterruptedException | DockerException ex) { MineCloud.logger().log(Level.SEVERE, "Was unable to create bungee with type " + type.name(), ex); return bungee; } bungee.setNetwork(network); bungee.setNode(node); bungee.setPublicIp(node.publicIp()); bungee.setType(type); repository.save(bungee); MineCloud.logger().info("Started bungee " + bungee.name() + " with container id " + bungee.containerId()); return bungee; }
Example #7
Source File: DockerSshExecutor.java From simpleci with MIT License | 4 votes |
private void prepareContainers(JobContext context) throws DockerException, JSchException { String buildContainerId = runContainerRecursice(context.jobConfig.container, context.jobSettings.info.jobId); String buildContainerIpAddress = containerManager.containerIp(buildContainerId); executorContext.sshClient = new SshClient(buildContainerIpAddress, "simpleci", "simpleci"); }
Example #8
Source File: DockerContainerManager.java From simpleci with MIT License | 4 votes |
RunResult(List<String> containers, DockerException e) { this.containers = containers; this.success = false; this.e = e; }