Сборка происходит в GitHub Actions, чтобы максимально снизить порог входа и упростить вашу жизнь. Основной сценарий предполагает отправку образов в ваш личный приватный или публичный registry. Можно развернуть свой registry или арендовать в облаке, например в Яндексе или cloud.ru. Если вы решите пойти по пути своего registry, то он должен поддерживать авторизацию и быть доступен во внешней сети.
- Перейдите во вкладку "Actions" в вашем форке и разрешите запуск workflow.
1.**Добавьте секреты для Docker Hub**
- В настройках репозитория (Settings → Secrets and variables → Actions) добавьте переменные:
-`DOCKER_REGISTRY_URL` — адрес реестра (например, `docker.io`)
-`DOCKER_LOGIN` — ваш логин Docker Hub или в вашем приватном registry
-`DOCKER_PASSWORD` — ваш пароль от вашего приватного registry или [токен Docker Hub](https://app.docker.com/settings/personal-access-tokens). Для Docker Hub нужны права Read и Write и рекомендуется использовать токен, вместо пароля.
Готовые собранные образы можно взять в [sleemp/oscript](https://hub.docker.com/r/sleemp/oscript)
### Назначение
Это базовые образы с движком oscript, для самостоятельного использования и сборки на их основе других образов.
### Сборка
1. [**Выполните подготовительные шаги**](#подготовительные-шаги), если не сделали это ранее
1.**Добавьте тег `oscript_Версия`**
- Перейдите во вкладку "Tags" или используйте команду:
```bash
git tag oscript_dev
git push origin oscript_dev
```
доступные к использованию версии:
- stable
- lts
- lts-dev
- dev
- preview
сборка с номерными версиями не тестировалась
- либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт `./src/tag-oscript-Версия.sh` — он принудительно «перевесит» тег на последний коммит и запушит его. Доступны скрипты для всех допустимых тегов версий
- Это необходимо для запуска сборки образа через GitHub Actions.
1.**Запустите сборку**
- После пуша тега workflow автоматически соберёт и опубликует образ `oscript` в ваш Docker Registry.
- будет опубликован образ с тегом выбранной версии, а также с номерной версией собранного `oscript` в двух вариантах - 3 и 4 разряда, то есть, например `1.9.3` и `1.9.3.15`
- исключение составляют rc-версии: для них будет опубликован образ с символьной версией, например `dev` и `2.0.0-rc.8_614` (обратите внимание, что + заменяется на _).
1. [**Выполните подготовительные шаги**](#подготовительные-шаги), если не сделали это ранее
1.**Добавьте тег `yard`**
- Перейдите во вкладку "Tags" или используйте команду:
```bash
git tag yard
git push origin yard
```
- либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт `./src/tag-yard-latest.sh` — он принудительно «перевесит» тег на последний коммит и запушит теги
- Это необходимо для запуска сборки yard через GitHub Actions.
1.**Запустите сборку**
- После пуша тега workflow автоматически соберёт и опубликует образ `yard` в ваш Docker Registry.
- будет опубликован образ с тегом `latest`, а также с номерной версией собранного `yard`
1.**Проверьте результат**
- Убедитесь, что образ появился в вашем Docker Registry с именем `yard` и соответствующей версией.
Образ собирается на основе [oscript:dev](#oscript), он должен быть предварительно собран и запушен.
### Использование
1. Необходимо пробросить в контейнер каталог, в который будет загружен дистрибутив. Путь к каталогу внутри не регламентируеся, можете, например использовать `-v ./downloads:/tmp/downloads`.
1. Подробнее с использованием утилиты можно в репозитории [yard](https://github.com/arkuznetsov/yard/)
### Ограничения
1. В образе отсутствует платформа и EDT, а значит не будет работать связанный с ними функционал. Можно просто скачать и распаковать загруженные файлы.
Образ предназначен для загрузки Linux-версий дистрибутивов платформы `1С:Предприятие` и `EDT`. Основная задача - скачивание дистрибутивов для целей сборки Docker-образов с платформой и EDT.
Образ основан на образе с [yard](#yard) и скрипте загрузки из [onec-docker](https://github.com/firstBitMarksistskaya/onec-docker)
### Сборка
1. [**Выполните подготовительные шаги**](#подготовительные-шаги), если не сделали это ранее
- либо клонируйте репозиторий к себе на Linux-хост (или используйте GitHub Codespaces) и запустите скрипт `./src/tag-onec-installer-downloader-latest.sh` — он принудительно создаст тег с текущей датой на последний коммит и запушит его
Для запуска образа необходимо учесть следующие моменты:
1. Необходимо пробросить в контейнер переменные среды `YARD_RELEASES_USER` и `YARD_RELEASES_PWD`, необходимые `yard` для авторизации на сайте релизов 1С
1. Также необходимо передать какой дистрибутив и версию нужно скачать, например `server 8.3.25.1445`. Список доступных дистрибутивов:
- edt
- server
- server32
- client
- client32
- thin-client
- thin-client32
1. И, конечно, необходимо пробросить в контейнер каталог, в который будет загружен дистрибутив: `-v ./downloads:/tmp/downloads`.
1. Дополнительно можно пробросить каталог `/distr` с загруженными архивами дистрибутивов
1. Итоговая команда запуска может выглядеть примерно так: