Thanks to visit codestin.com
Credit goes to github.com

Skip to content

KamikotoTkach/ImageComposer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Composer

Программная сборка Docker-образов через Jib Core по YAML-конфигурациям. Работает без Docker daemon и Dockerfile.

Что делает

Берёт базовый образ, накладывает файлы, настраивает окружение и публикует в:

  • Docker Registry
  • Локальный Docker daemon
  • TAR-архив

Быстрый старт

1. Создать конфиги

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.yml

components.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: {}

2. Запуск

Собрать все образы:

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

Сборка в TAR

# 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.

About

Программная сборка Docker-образов через Jib Core по YAML-конфигурациям.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages