Спасибо за Ваш доклад! На времени 13:16 Вы говорите что лицензии 1С можно прикрепить к хостовой операц.системе а для контейнеров пробросить путь до нее. Могли бы вы уточнить каким образом это делается? Ссылку на инструкцию или статью с конкретными действиями по настройке? Очень интересны варианты как по Linux так и под Windows.
Леонид, Добрый день! 1) Нужно пробросить C:\ProgramData\1C\licenses в контейнер, это задается в run скрипте или в docker-compose. 2) Создать контейнер с 1С. 3) Создать ИБ в контейнере. 4) Зайти в ИБ, она потребует лицензию, тогда нужно ее активировать. Параметры оборудования будут взяты контейнером из хостовой системы. 5) Активировать лицензию. Она станет доступна в C:\ProgramData\1C\licenses и в контейнере и в хостовой системе. 6) при создании нового контейнера он обратится к лицензии на хостовой системе. Для линукс примерно та же схема. В линукс в контейнер можно пробросить usb с ключом. В Windows - нельзя.
@@1c-rarus Спасибо! Правильно я понимаю: если на хосте установлен Linux и там запущено некоторое количество контейнеров то USB ключ можно пробросить одновременно во все контейнеры и таким образом получить это количество работающих сред разработки. Т.Е. при одновременном обращении к USB ключу всех контейнеров конфликта возникать не будет?
@@leonidlisicin1451 Леонид, добрый день! 1) С помощью ключа --device можно опубликовать интерфейс оборудования в контейнере. При этом он не блокируется на монопольное использование. 1.1) docker run -t -i --device=/dev/ttyUSB0 ubuntu bash 1.2) docker-compose devices: # здесь пробрасываем usb порт, к которому подключен принтер - /dev/ttyUSB0:/dev/ttyUSB0
Сергей, добрый день! В самом общем случае ENTRYPOINT является аналогом CMD, и в рамках данной публикации было бы методологически не верным использовать их оба. Различия в порядке использования ENTRYPOINT и CMD на столько тонки, и требуют такое погружения в технологию конкретизации, что рассказ о них тянет на отдельное выступление. К тому же, есть методологическое различие в использование ENTRYPOINT и CMD на Linux и на Windows, о которых тоже нужно было тогда упомянуть. Дело в том, что в linux контейнере есть понятие процесса PID 1 в рамках которого идет исполнение кода запуска контейнера, чего не скажешь о Windows. Поэтому опустили ENTRYPOINT в описании общих команд и оставили одну конструкцию CMD. Думаю, эти различия будут оговорены в статье. Вот интересная статья, которая рассказывает, что все не так просто: habr.com/ru/company/southbridge/blog/329138/.
Спасибо за Ваш доклад! На времени 13:16 Вы говорите что лицензии 1С можно прикрепить к хостовой операц.системе а для контейнеров пробросить путь до нее. Могли бы вы уточнить каким образом это делается? Ссылку на инструкцию или статью с конкретными действиями по настройке? Очень интересны варианты как по Linux так и под Windows.
Леонид, Добрый день!
1) Нужно пробросить C:\ProgramData\1C\licenses в контейнер, это задается в run скрипте или в docker-compose.
2) Создать контейнер с 1С.
3) Создать ИБ в контейнере.
4) Зайти в ИБ, она потребует лицензию, тогда нужно ее активировать. Параметры оборудования будут взяты контейнером из хостовой системы.
5) Активировать лицензию. Она станет доступна в C:\ProgramData\1C\licenses и в контейнере и в хостовой системе.
6) при создании нового контейнера он обратится к лицензии на хостовой системе.
Для линукс примерно та же схема.
В линукс в контейнер можно пробросить usb с ключом. В Windows - нельзя.
@@1c-rarus Спасибо! Правильно я понимаю: если на хосте установлен Linux и там запущено некоторое количество контейнеров то USB ключ можно пробросить одновременно во все контейнеры и таким образом получить это количество работающих сред разработки. Т.Е. при одновременном обращении к USB ключу всех контейнеров конфликта возникать не будет?
@@leonidlisicin1451 Леонид, добрый день!
1) С помощью ключа --device можно опубликовать интерфейс оборудования в контейнере. При этом он не блокируется на монопольное использование.
1.1) docker run -t -i --device=/dev/ttyUSB0 ubuntu bash
1.2) docker-compose
devices:
# здесь пробрасываем usb порт, к которому подключен принтер
- /dev/ttyUSB0:/dev/ttyUSB0
А где статья со скриптами?
А как же ENTRYPOINT?
Сергей, добрый день!
В самом общем случае ENTRYPOINT является аналогом CMD, и в рамках данной публикации было бы методологически не верным использовать их оба. Различия в порядке использования ENTRYPOINT и CMD на столько тонки, и требуют такое погружения в технологию конкретизации, что рассказ о них тянет на отдельное выступление. К тому же, есть методологическое различие в использование ENTRYPOINT и CMD на Linux и на Windows, о которых тоже нужно было тогда упомянуть. Дело в том, что в linux контейнере есть понятие процесса PID 1 в рамках которого идет исполнение кода запуска контейнера, чего не скажешь о Windows. Поэтому опустили ENTRYPOINT в описании общих команд и оставили одну конструкцию CMD. Думаю, эти различия будут оговорены в статье.
Вот интересная статья, которая рассказывает, что все не так просто: habr.com/ru/company/southbridge/blog/329138/.