Контейнеризируйте образы Docker в определенный локальный каталог с помощью Jib-Core

Я прошу помощи в создании локальных образов Docker с использованием jib-core.

Я знаю, как отправить образ в репозиторий DockerHub, но теперь я хочу поместить все образы в один локальный репозиторий.

Что я сделал до сих пор:

  • Прочитав документ jib-core, успешно создайте image.tar, но не можете его собрать (отсутствует файл docker)

на данный момент я делаю так:

public void buildLocalImage(String appName) throws InvalidImageReferenceException, IOException, InterruptedException, ExecutionException, RegistryException, CacheDirectoryCreationException {
        Jib.from("openjdk:15")
                .addLayer(Arrays.asList(Paths.get("jars/"+appName+".jar")), AbsoluteUnixPath.get("/"))
                .addLayer(Arrays.asList(Paths.get("jars/local-kube-api.jar")), AbsoluteUnixPath.get("/"))
                .addLayer(Arrays.asList(Paths.get("jars/script.sh")), AbsoluteUnixPath.get("/"))
                .setEntrypoint("sh","/script.sh")
                .containerize(
                        Containerizer.to(DockerDaemonImage.named("images/"+appName+"-images:TEST")).setOfflineMode(true)
                );
    }

Конечная цель состоит в том, чтобы запустить 2 jar-файла в одном контейнере, которые успешно работают, когда я использую традиционный способ, заключающийся в отправке в репозиторий dockerHub путем добавления учетных данных и т. д.

Приведенный выше код выполняется без ошибок, но я не могу найти изображение после него, и я не знаю, почему.

Должно быть, я где-то ошибся. Это университетский проект, и если у вас есть какой-либо документ, который я могу прочитать по этим темам, это будет для меня большим подспорьем.

Будет полезно описать, какой результат вы хотите получить. Чего вы ожидаете?

loosebazooka 21.12.2020 19:06
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
1
188
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
public void buildLocalImage(String appName) throws InvalidImageReferenceException, IOException, InterruptedException, ExecutionException, RegistryException, CacheDirectoryCreationException {
        Jib.from("openjdk:15")
                .addLayer(Arrays.asList(Paths.get("jars/"+appName+".jar")), AbsoluteUnixPath.get("/"))
                .addLayer(Arrays.asList(Paths.get("jars/local-kube-api.jar")), AbsoluteUnixPath.get("/"))
                .addLayer(Arrays.asList(Paths.get("jars/script.sh")), AbsoluteUnixPath.get("/"))
                .setEntrypoint("sh","/script.sh")
                .containerize(
                        Containerizer.to(TarImage.at(Paths.get("images/"+appName+"-image:latest.tar"))
                                .named(appName+"-image:latest")));
    }

Создав образ .tar, а затем загрузив его в докер через docker load < image_name, вы можете хранить и запускать несколько локальных образов докера в контейнерах.

Если вашей конечной целью является загрузка локального демона Docker, вы можете использовать DockerDaemonImage вместо TarImage.

Chanseok Oh 21.12.2020 16:49

Другие вопросы по теме