当前位置: 首页>>代码示例>>Java>>正文


Java BuildImageCmd.exec方法代码示例

本文整理汇总了Java中com.github.dockerjava.api.command.BuildImageCmd.exec方法的典型用法代码示例。如果您正苦于以下问题:Java BuildImageCmd.exec方法的具体用法?Java BuildImageCmd.exec怎么用?Java BuildImageCmd.exec使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.github.dockerjava.api.command.BuildImageCmd的用法示例。


在下文中一共展示了BuildImageCmd.exec方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: resolve

import com.github.dockerjava.api.command.BuildImageCmd; //导入方法依赖的package包/类
@Override
protected final String resolve() {
    Logger logger = DockerLoggerFactory.getLogger(dockerImageName);

    Profiler profiler = new Profiler("Rule creation - build image");
    profiler.setLogger(logger);

    DockerClient dockerClient = DockerClientFactory.instance().client();
    try {
        if (deleteOnExit) {
            imagesToDelete.add(dockerImageName);
        }

        BuildImageResultCallback resultCallback = new BuildImageResultCallback() {
            @Override
            public void onNext(BuildResponseItem item) {
                super.onNext(item);

                if (item.isErrorIndicated()) {
                    logger.error(item.getErrorDetail().getMessage());
                } else {
                    logger.debug(StringUtils.chomp(item.getStream(), "\n"));
                }
            }
        };

        // We have to use pipes to avoid high memory consumption since users might want to build really big images
        @Cleanup PipedInputStream in = new PipedInputStream();
        @Cleanup PipedOutputStream out = new PipedOutputStream(in);

        profiler.start("Configure image");
        BuildImageCmd buildImageCmd = dockerClient.buildImageCmd(in);
        configure(buildImageCmd);

        profiler.start("Build image");
        BuildImageResultCallback exec = buildImageCmd.exec(resultCallback);

        // To build an image, we have to send the context to Docker in TAR archive format
        profiler.start("Send context as TAR");

        try (TarArchiveOutputStream tarArchive = new TarArchiveOutputStream(new GZIPOutputStream(out))) {
            tarArchive.setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX);

            for (Map.Entry<String, Transferable> entry : transferables.entrySet()) {
                Transferable transferable = entry.getValue();
                final String destination = entry.getKey();
                transferable.transferTo(tarArchive, destination);
            }
            tarArchive.finish();
        }

        profiler.start("Wait for an image id");
        exec.awaitImageId();

        return dockerImageName;
    } catch(IOException e) {
        throw new RuntimeException("Can't close DockerClient", e);
    } finally {
        profiler.stop().log();
    }
}
 
开发者ID:testcontainers,项目名称:testcontainers-java,代码行数:62,代码来源:ImageFromDockerfile.java

示例2: call

import com.github.dockerjava.api.command.BuildImageCmd; //导入方法依赖的package包/类
public String call() throws Exception {
    FilePath folder = new FilePath(new File(expandedDockerFolder));

    if (!exist(folder))
        throw new IllegalArgumentException(
                "configured dockerFolder '" + expandedDockerFolder + "' does not exist.");

    if (!exist(folder.child(dockerFileRes))) {
        throw new IllegalArgumentException(
                String.format("Configured Docker file '%s' does not exist.", dockerFileRes));
    }

    File docker = new File(expandedDockerFolder, dockerFileRes);

    BuildImageResultCallback callback = new BuildImageResultCallback() {
        @Override
        public void onNext(BuildResponseItem item) {
            super.onNext(item);
        }

        @Override
        public void onError(Throwable throwable) {
            super.onError(throwable);
        }
    };

    DockerClient client = DockerCommand.getClient(descriptor, cfgData.dockerUrlRes, cfgData.dockerVersionRes, cfgData.dockerCertPathRes, null);
    BuildImageCmd buildImageCmd = client
            .buildImageCmd(docker)
            .withTag(expandedImageTag)
            .withNoCache(noCache)
            .withRemove(rm);
    if (!buildArgsMap.isEmpty()) {
        for (final Map.Entry<String, String> entry : buildArgsMap.entrySet()) {
            buildImageCmd = buildImageCmd.withBuildArg(entry.getKey(), entry.getValue());
        }
    }

    BuildImageResultCallback result = buildImageCmd.exec(callback);

    return result.awaitImageId();
}
 
开发者ID:jenkinsci,项目名称:docker-build-step-plugin,代码行数:43,代码来源:CreateImageRemoteCallable.java


注:本文中的com.github.dockerjava.api.command.BuildImageCmd.exec方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。