Установить libreoffice в docker image

Доброго дня

Мы хотим геренировать PDF для отчётов (reports addon)
Собираем docker образ, через gradlew bootBuildImage (Deployment :: Jmix Documentation), но также в образ надо установить libreoffice (Configuration :: Jmix Documentation).

Вопрос. Как добавить установку libreoffice в docker image?
Спасибо

Мне кажется логичнее собирать LibreOffice в отдельном образе, а запускать вместе с приложением через docker-compose.

То есть собрать 2 образа

  1. с приложением jmix
  2. c LibreOffice

потом запустить 2 контейнера? Как их связать? Нам в же в Jmix’e надо пусть для бинарника LibreOffice

Да, вы правы, про то что используется непосредственный запуск процессов я забыл.

Значит только в одном образе. Собирать его придется с помощью стандартных средств Docker, то есть на основе Dockerfile. Возможно кто-то сможет поделиться примером.

Вопрос решил, перешёл на jib плагин, в котором указал base image, который заранее подготовил и туда установил jdk и libreoffice

1 симпатия

Поделюсь настройкой со всеми, так как был один момент, который не понимали как решить.
Дело в том, что в образ не копировались js/css файлы от VAADIN, то есть когда приложение стартовало, то после захода на страницу не подгружались стили. Ресурсы темы надо добавить вручную и это можно прописать в настройках jib плагина:

plugins {
...
    id 'com.google.cloud.tools.jib' version '3.3.0'
...
}

jib {
    to {
        image = System.getProperty("imageName", "default")
        auth {
            username = System.getProperty("docker-username", "username")
            password = System.getProperty("docker-password", "password")
        }
    }
    from {
        image = "<тут ваш образ с jdk + libreoffice. Dockerfile ниже>"
        auth {
            username = System.getProperty("docker-username", "username")
            password = System.getProperty("docker-password", "password")
        }
    }
    extraDirectories {
        paths {
            path {
                from = 'build/themes'
                into = '/app/resources'
            }
        }
    }
    container {
        creationTime = "USE_CURRENT_TIMESTAMP"
    }
}

В настройке добавилось extraDirectories, где мы добавляем нашу тему, которая содержит js/css файлы.

Dockerfile для базового образа нашего приложения

FROM openjdk:11-jdk-slim

RUN apt-get update && apt-get install -y curl libreoffice && rm -rf /var/lib/apt/lists/*
2 симпатии