@SneakyThrows public InputStream streamRecording() { TarArchiveInputStream archiveInputStream = new TarArchiveInputStream( dockerClient.copyArchiveFromContainerCmd(containerId, RECORDING_FILE_NAME).exec() ); archiveInputStream.getNextEntry(); return archiveInputStream; }
@Override @SneakyThrows(Exception.class) public <T> T copyFileFromContainer(String containerPath, ThrowingFunction<InputStream, T> consumer) { if (!isCreated()) { throw new IllegalStateException("copyFileFromContainer can only be used when the Container is created."); } try ( InputStream inputStream = dockerClient.copyArchiveFromContainerCmd(containerId, containerPath).exec(); TarArchiveInputStream tarInputStream = new TarArchiveInputStream(inputStream) ) { tarInputStream.getNextTarEntry(); return consumer.apply(tarInputStream); } }
private boolean checkMountableFile() { DockerClient dockerClient = client(); MountableFile mountableFile = MountableFile.forClasspathResource(ResourceReaper.class.getName().replace(".", "/") + ".class"); Volume volume = new Volume("/dummy"); try { return runInsideDocker( createContainerCmd -> createContainerCmd.withBinds(new Bind(mountableFile.getResolvedPath(), volume, AccessMode.ro)), (__, containerId) -> { try (InputStream stream = dockerClient.copyArchiveFromContainerCmd(containerId, volume.getPath()).exec()) { stream.read(); return true; } catch (Exception e) { return false; } } ); } catch (Exception e) { log.debug("Failure while checking for mountable file support", e); return false; } }
@java.lang.SuppressWarnings("all") public com.github.dockerjava.api.command.CopyArchiveFromContainerCmd copyArchiveFromContainerCmd(final java.lang.String arg0, final java.lang.String arg1) { return this.wrappedClient.copyArchiveFromContainerCmd(arg0, arg1); }
@Override public CopyArchiveFromContainerCmd copyArchiveFromContainerCmd(String arg0, String arg1) { return getDelegate().copyArchiveFromContainerCmd(arg0, arg1); }
public void copyFileFromContainer(String containerName, String containerFile, String hostFolder) { log.trace("Copying {} from container {} to host folder {}", containerFile, containerName, hostFolder); try (TarArchiveInputStream tarStream = new TarArchiveInputStream( client.copyArchiveFromContainerCmd(containerName, containerFile).exec())) { unTar(tarStream, new File(hostFolder)); } catch (Exception e) { log.warn("Exception getting tar file from container {}", e.getMessage()); } }
public void copyFileFromContainer(String containerName, String containerFile, String hostFolder) { log.trace("Copying {} from container {} to host folder {}", containerFile, containerName, hostFolder); try (TarArchiveInputStream tarStream = new TarArchiveInputStream( client.copyArchiveFromContainerCmd(containerName, containerFile).exec())) { unTar(tarStream, new File(hostFolder)); } catch (Exception e) { log.warn("Exception getting tar file from container {}", e.getMessage()); } }
public boolean isFilePresentInContainer(String filename) { try ( final InputStream file = dockerClient.copyArchiveFromContainerCmd("ftp", "/ftp/" + filename).exec()) { return file != null; } catch (Exception e) { return false; } } }
public InputStream streamRecording() { try { TarArchiveInputStream archiveInputStream = new TarArchiveInputStream(dockerClient.copyArchiveFromContainerCmd(containerId, RECORDING_FILE_NAME).exec()); archiveInputStream.getNextEntry(); return archiveInputStream; } catch (final java.lang.Throwable $ex) { throw lombok.Lombok.sneakyThrow($ex); } }
private boolean checkMountableFile() { DockerClient dockerClient = client(); MountableFile mountableFile = MountableFile.forClasspathResource(ResourceReaper.class.getName().replace(".", "/") + ".class"); Volume volume = new Volume("/dummy"); try { return runInsideDocker(createContainerCmd -> createContainerCmd.withBinds(new Bind(mountableFile.getResolvedPath(), volume, AccessMode.ro)), (__, containerId) -> { try (InputStream stream = dockerClient.copyArchiveFromContainerCmd(containerId, volume.getPath()).exec()) { stream.read(); return true; } catch (Exception e) { return false; } }); } catch (Exception e) { log.debug("Failure while checking for mountable file support", e); return false; } }
InputStream inputStream = dockerClient.copyArchiveFromContainerCmd(containerId, containerPath).exec(); TarArchiveInputStream tarInputStream = new TarArchiveInputStream(inputStream)) { tarInputStream.getNextTarEntry();