1
0
mirror of https://github.com/pravets/oscript-images.git synced 2025-10-08 23:01:52 +02:00
Files
oscript-images/README.md
2025-10-02 21:21:06 +00:00

27 KiB

oscript-images

CodeRabbit Pull Request Reviews License Telegram

Всё для сборки Docker-образов движка OneScript и некоторых утилит на OneScript

Сборка происходит в GitHub Actions, чтобы максимально снизить порог входа и упростить вашу жизнь. Основной сценарий предполагает отправку образов в ваш личный приватный или публичный registry. Можно развернуть свой registry или арендовать в облаке, например в Яндексе или cloud.ru. Если вы решите пойти по пути своего registry, то он должен поддерживать авторизацию и быть доступен во внешней сети.

Необходимо выполнить подготовительные шаги и шаги сборки требуемых вам утилит.

Оглавление

Подготовительные шаги

  1. Форкните этот репозиторий.

  2. Включите GitHub Actions

    • Перейдите во вкладку "Actions" в вашем форке и разрешите запуск workflow.
  3. Добавьте секреты для Docker Hub

    • В настройках репозитория (Settings → Secrets and variables → Actions) добавьте переменные:
      • DOCKER_REGISTRY_URL — адрес реестра (например, docker.io)
      • DOCKER_LOGIN — ваш логин Docker Hub или в вашем приватном registry
      • DOCKER_PASSWORD — ваш пароль от вашего приватного registry или токен Docker Hub. Для Docker Hub нужны права Read и Write и рекомендуется использовать токен, вместо пароля.

    ↑ В начало

oscript

Docker Pulls

Docker Version Docker Version Docker Version Docker Version Docker Version

Готовые собранные образы можно взять в sleemp/oscript

Назначение

Это базовые образы с движком oscript, для самостоятельного использования и сборки на их основе других образов.

Сборка

  1. Выполните подготовительные шаги, если не сделали это ранее

  2. Добавьте тег oscript_Версия

    • Перейдите во вкладку "Tags" или используйте команду:

      git tag oscript_dev
      git push origin oscript_dev
      

      доступные к использованию версии:

      • stable
      • lts
      • lts-dev
      • dev
      • preview

      сборка с номерными версиями не тестировалась

    • либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт ./src/tag-oscript-Версия.sh — он принудительно «перевесит» тег на последний коммит и запушит его. Доступны скрипты для всех допустимых тегов версий

    • Это необходимо для запуска сборки образа через GitHub Actions.

  3. Запустите сборку

    • После пуша тега workflow автоматически соберёт и опубликует образ oscript в ваш Docker Registry.
    • будет опубликован образ с тегом выбранной версии, а также с номерной версией собранного oscript в двух вариантах - 3 и 4 разряда, то есть, например 1.9.3 и 1.9.3.15
    • исключение составляют rc-версии: для них будет опубликован образ с символьной версией, например dev и 2.0.0-rc.8_614 (обратите внимание, что + заменяется на _).
  4. Проверьте результат

    • Убедитесь, что образ появился в вашем Docker Registry с именем oscript и соответствующей версией.

Зависимости

Каких-то явных зависимостей нет.

Использование

Использовать как любой другой Docker-образ через docker run или как основу для своих образов.

Ограничения

Явных ограничений нет.

↑ В начало

yard

Docker Pulls Docker Version

Готовые собранные образы можно взять в sleemp/yard

Назначение

Образ предназначен для скачивания файлов с сайта релизов фирмы 1С с помощью утилиты yard.

Сборка

  1. Выполните подготовительные шаги, если не сделали это ранее

  2. Добавьте тег yard

    • Перейдите во вкладку "Tags" или используйте команду:

      git tag yard
      git push origin yard
      
    • либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт ./src/tag-yard-latest.sh — он принудительно «перевесит» тег на последний коммит и запушит теги

    • Это необходимо для запуска сборки yard через GitHub Actions.

  3. Запустите сборку

    • После пуша тега workflow автоматически соберёт и опубликует образ yard в ваш Docker Registry.
    • будет опубликован образ с тегом latest, а также с номерной версией собранного yard
  4. Проверьте результат

    • Убедитесь, что образ появился в вашем Docker Registry с именем yard и соответствующей версией.

Зависимости

Образ собирается на основе oscript:dev, он должен быть предварительно собран и запушен.

Использование

  1. Необходимо пробросить в контейнер каталог, в который будет загружен дистрибутив. Путь к каталогу внутри не регламентируеся, вы можете, например, использовать -v ./downloads:/tmp/downloads.

  2. Подробнее с использованием утилиты можно в репозитории yard

Ограничения

  1. В образе отсутствует платформа и EDT, а значит не будет работать связанный с ними функционал. Можно просто скачать и распаковать загруженные файлы.

↑ В начало

onec-installer-downloader

Docker Pulls Docker Version

Готовые собранные образы можно взять в sleemp/onec-installer-downloader

Назначение

Образ предназначен для загрузки Linux-версий дистрибутивов платформы 1С:Предприятие и EDT. Основная задача - скачивание дистрибутивов для целей сборки Docker-образов с платформой и EDT.

Образ основан на образе с yard и скрипте загрузки из onec-docker

Сборка

  1. Выполните подготовительные шаги, если не сделали это ранее

  2. Добавьте тег onec-installer-downloader_НомерВерсии

    • Перейдите во вкладку "Tags" или используйте команду:
      git tag onec-installer-downloader_НомерВерсии
      git push origin onec-installer-downloader_НомерВерсии
      
    • НомерВерсии предлагается использовать вида ГодМесяцДень
    • либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт ./src/tag-onec-installer-downloader-latest.sh — он принудительно создаст тег с текущей датой на последний коммит и запушит его
    • Это необходимо для запуска сборки через GitHub Actions.
  3. Запустите сборку

    • После пуша тега workflow автоматически соберёт и опубликует образ onec-installer-downloader в ваш Docker Registry.
    • будет опубликован образ с тегом НомерВерсии, а также с тегом latest
  4. Проверьте результат

    • Убедитесь, что образ появился в вашем Docker Registry с именем onec-installer-downloader и соответствующей версией.

Зависимости

Образ собирается на основе образа yard:latest, он должен быть предварительно собран и запушен.

Использование

Для запуска образа необходимо учесть следующие моменты:

  1. Необходимо пробросить в контейнер переменные среды YARD_RELEASES_USER и YARD_RELEASES_PWD, необходимые yard для авторизации на сайте релизов 1С

  2. Также необходимо передать какой дистрибутив и версию нужно скачать, например server 8.3.25.1445. Список доступных дистрибутивов:

    • edt
    • server
    • server32
    • client
    • client32
    • thin-client
    • thin-client32
  3. И, конечно, необходимо пробросить в контейнер каталог, в который будет загружен дистрибутив: -v ./downloads:/tmp/downloads.

  4. Дополнительно можно пробросить каталог /distr с загруженными архивами дистрибутивов

  5. Итоговая команда запуска может выглядеть примерно так:

docker run --rm \ 
-e YARD_RELEASES_USER=user
-e YARD_RELEASES_PWD=password \ 
-v ./downloads:/tmp/downloads \
sleemp/onec-installer-downloader:20250723 thin-client32 8.3.25.1445

Ограничения

Ограничения аналогичны базовому образу

↑ В начало

winow

Docker Pulls Docker Version

Готовые собранные образы можно взять в sleemp/winow

Назначение

Образ предназначен для запуска веб-приложений на фреймворке winow.

Сборка

  1. Выполните подготовительные шаги, если не сделали это ранее

  2. Добавьте тег winow

    • Перейдите во вкладку "Tags" или используйте команду:

      git tag winow
      git push origin winow
      
    • либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт ./src/tag-winow-latest.sh — он принудительно «перевесит» тег на последний коммит и запушит теги

    • Это необходимо для запуска сборки yard через GitHub Actions.

  3. Запустите сборку

    • После пуша тега workflow автоматически соберёт и опубликует образ winow в ваш Docker Registry.
    • будет опубликован образ с тегом latest, а также с номерной версией собранного winow
  4. Проверьте результат

    • Убедитесь, что образ появился в вашем Docker Registry с именем winow и соответствующей версией.

Зависимости

Образ собирается на основе oscript:dev, он должен быть предварительно собран и запушен.

Использование

  1. Есть два варианта использования образа - для запуска как есть и для сборки на его основе образа вашего приложения

  2. В любом случае, необходимо добавить в контейнер каталог c вашим приложением. Для запуска как есть используйте ключ -v ./app:/app.

  3. Также необходимо пробросить из контейнера порт 3333, например так -p 8080:3333

  4. В образе реализована возможность при запуске доустанавливать зависимости вашего приложения с помощью ключа -deps. Но нужно помнить, что "прибитые молотком" версии пакетов autumn, winow, winow-cli и их зависимостей могут привести к непредсказуемым последствиям.

Ограничения

  1. Явных ограничений вроде бы нет.

↑ В начало

gitrules

Docker Pulls Docker Version

Готовые собранные образы можно взять в sleemp/gitrules

Назначение

Образ предназначен для сборки/разборки правил конвертации в формате Конвертации данных 2.0 с помощью утилиты gitrules.

Сборка

  1. Выполните подготовительные шаги, если не сделали это ранее

  2. Добавьте тег gitrules

    • Перейдите во вкладку "Tags" или используйте команду:

      git tag -f gitrules
      git push origin gitrules -f
      
    • либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт ./src/tag-gitrules-latest.sh — он принудительно «перевесит» тег на последний коммит и запушит теги

    • Это необходимо для запуска сборки gitrules через GitHub Actions.

  3. Запустите сборку

    • После пуша тега workflow автоматически соберёт и опубликует образ gitrules в ваш Docker Registry.
    • будет опубликован образ с тегом latest, а также с номерной версией собранного gitrules
  4. Проверьте результат

    • Убедитесь, что образ появился в вашем Docker Registry с именем gitrules и соответствующей версией.

Зависимости

Образ собирается на основе oscript:dev, он должен быть предварительно собран и запушен.

Использование

  1. Необходимо пробросить в контейнер каталог, в котором находятся ваши правила и где будет происходить сборка. Путь к каталогу внутри не регламентируеся, вы можете, например, использовать -v ./:/tmp/rules.

  2. Подробнее с использованием утилиты можно в репозитории gitrules

  3. Также, например, образ используется в CI/CD компоненте для сборки правил конвертации для Gitlab CI. Репозиторий данной компоненты есть и на GitHub

↑ В начало

stebi

Docker Pulls Docker Version

Готовые собранные образы можно взять в sleemp/stebi

Назначение

Образ предназначен для экспорта диагностик 1С: EDT в формат SonarQube 1C (BSL) Community Plugin с помощью утилиты stebi. Утилита позволяет конвертировать результаты проверки проекта 1С:EDT, трансформировать диагностики, изменять параметры и получать версию конфигурации.

Сборка

  1. Выполните подготовительные шаги, если не сделали это ранее

  2. Добавьте тег stebi

    • Перейдите во вкладку "Tags" или используйте команду:

      git tag -f stebi
      git push origin stebi -f
      
    • либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт ./src/tag-stebi-latest.sh — он принудительно «перевесит» тег на последний коммит и запушит теги

    • Это необходимо для запуска сборки stebi через GitHub Actions.

  3. Запустите сборку

    • После пуша тега workflow автоматически соберёт и опубликует образ stebi в ваш Docker Registry.
    • будет опубликован образ с тегом latest, а также с номерной версией собранного stebi
  4. Проверьте результат

    • Убедитесь, что образ появился в вашем Docker Registry с именем stebi и соответствующей версией.

Зависимости

Образ собирается на основе oscript:dev, он должен быть предварительно собран и запушен.

Использование

  1. Образ можно использовать для конвертации результатов проверки EDT в формат JSON для SonarQube:

    docker run --rm -v ./:/workspace sleemp/stebi:latest convert ./edt-result.out ./edt-json.json ./src
    
  2. Для просмотра всех доступных команд запустите образ без параметров или с ключом --help:

    docker run --rm sleemp/stebi:latest
    
  3. Подробнее с использованием утилиты можно ознакомиться в репозитории stebi

Ограничения

Явных ограничений нет.

↑ В начало

edt-ripper

Docker Pulls Docker Version

Готовые собранные образы можно взять в sleemp/edt-ripper

Назначение

Образ предназначен для работы с замечаниями EDT и файлами правил для SonarQube с помощью утилиты edt-ripper. Утилита выполняет разбор EDT отчета анализа проекта, формирует результат в формате bsl-ls и мапит обнаруженные замечания с правилами (внутренний файл правил, внешний файл правил).

Сборка

  1. Выполните подготовительные шаги, если не сделали это ранее

  2. Добавьте тег edt-ripper

    • Перейдите во вкладку "Tags" или используйте команду:

      git tag -f edt-ripper
      git push origin edt-ripper -f
      
    • либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт ./src/tag-edt-ripper-latest.sh — он принудительно «перевесит» тег на последний коммит и запушит теги

    • Это необходимо для запуска сборки edt-ripper через GitHub Actions.

  3. Запустите сборку

    • После пуша тега workflow автоматически соберёт и опубликует образ edt-ripper в ваш Docker Registry.
    • будет опубликован образ с тегом latest, а также с номерной версией собранного edt-ripper
  4. Проверьте результат

    • Убедитесь, что образ появился в вашем Docker Registry с именем edt-ripper и соответствующей версией.

Зависимости

Образ собирается на основе oscript:dev, он должен быть предварительно собран и запушен.

Использование

  1. Образ можно использовать для разбора EDT отчета и формирования результата в формате bsl-ls:

    docker run --rm -v ./:/workspace sleemp/edt-ripper:latest parse ./edt-report.txt ./bsl-ls-output.json
    
  2. Для просмотра всех доступных команд запустите образ без параметров или с ключом --help:

    docker run --rm sleemp/edt-ripper:latest
    
  3. Подробнее с использованием утилиты можно ознакомиться в репозитории edt-ripper

Ограничения

Явных ограничений нет.

↑ В начало