Программная сборка Docker-образов через Jib Core по YAML-конфигурациям. Работает без Docker daemon и Dockerfile.
Берёт базовый образ, накладывает файлы, настраивает окружение и публикует в:
- Docker Registry
- Локальный Docker daemon
- TAR-архив
images.yml
images:
my-app:latest:
image: eclipse-temurin:17-jre
components: [app] # из components.yml
entrypoint: ["java", "-jar", "/app/app.jar"]
expose: ["8080/tcp"]
env:
env-key: env-value
deploy: local # из deploy.ymlcomponents.yml
components:
app:
items:
- from: build/app.jar
to: /app/app.jar
order: 1
# если нет, то просто components: {}deploy.yml
deploys:
# Локальная сборка
local: !<daemon> {}
# В реестр
registry: !<repository>
username: "${REG_USER}"
password: "${REG_PASS}"
# В TAR
tar: !<tar>
path: "./dist"credentials.yml (для приватных базовых образов)
credentials:
"registry.example.com/":
username: "user"
password: "pass"
# если нет, то просто credentials: {}last_build.yml (для обновления образов)
last_build: {}Собрать все образы:
java -jar image-composer.jar -d working_directory build-allСобрать обновлённые образы:
java -jar image-composer.jar -d working_directory build-updatedСобрать образ someImage:
java -jar image-composer.jar -d working_directory build someImage# images.yml
images:
my-app:latest:
image: eclipse-temurin:17-jre
components: [app]
entrypoint: ["java", "-jar", "/app/app.jar"]
expose: ["8080/tcp"]
deploy: local# images.yml
images:
some.registry.io/my-app:latest:
image: eclipse-temurin:17-jre
components: [app]
entrypoint: ["java", "-jar", "/app/app.jar"]
expose: ["8080/tcp"]
deploy: registry# images.yml
images:
my-app:latest:
image: eclipse-temurin:17-jre
components: [app]
entrypoint: ["java", "-jar", "/app/app.jar"]
expose: ["8080/tcp"]
deploy: tarЗагрузка: docker load -i dist/my-app
components:
base-config:
items:
- from: config/app.yml
to: /etc/app/config.yml
order: 1
app:
dependencies: [base-config]
items:
- from: build/app.jar
to: /app/app.jar
order: 10Зависимости разрешаются рекурсивно. order (опционально) - порядок добавления файла, где чем меньше - тем первее будет добавлен файл в образ.
Создан на базе Jib Core API.