b00t b00t

83
Рейтинг

b00t



  •   Регистрация: 25.01.2010 (14 лет назад)

  •   Был(а) на сайте: 20.07.2021

Подписчики 2

Группы

Профессиональный разработчик

Рейтинг 83

Создаем Docker-контейнер с 1C-клиентом для Linux

Статья Системный администратор Программист Linux Бесплатно (free) Нет файла Инструменты администратора БД DevOps и автоматизация разработки

Создаем Docker-контейнер для Linux-версии 1C. Например, чтобы беспрепятственно использовать его на любом Linux дистрибутиве и не держать при этом "дремучих" версий библиотек в системе.

11.09.2016    26642    b00t    50       

84

Комментарии

AdminСоздаем Docker-контейнер с 1C-клиентом для Linux#47 21.10.16 23:06
(44) Infactum, я не ваш скрипт активно обсуждал, а способ распространения с предоставлением дистрибутива или доступа на сайт и возможные последствия. Если ваш скрипт не предоставляет ни первого, ни второго -- то сказанное мной его не коим образом не касается. Я не успел изучить ваш скрипт до удаления ссылки на него,, у меня достаточно мало времени и много проектов, а на вопрос "чей логин и пароль использует скрипт?" может ответить и его автор, т.е. -- вы. Если ваш скрипт спрашивает логин пароль у пользователя и качает дистрибутив с официального сайта -- это правильный способ и удобный для пользователя. Я надеюсь я ничем вас не обидел, не упрекайте меня и не обижайтесь, я пишу очень много кода, на разных языках, мой "рабочий" день с 6 утра и до 2-3 ночи, мне действительно не всегда доступно лишнее время для изучения дополнительных 100 строчек кода. Как вас найти на гитхабе?
AdminСоздаем Docker-контейнер с 1C-клиентом для Linux#43 18.10.16 23:32
(42) Infactum, ну если там был просто скрипт сборки и при этом репозиторий не содержал: какого-либо логина/пароля для доступа или ссылки на место где их взять, готового образа вместе с 1С, ну или ссылки на него -- то действительно непонятно, почему потёрли, ели же что-то из вышеперечисленного всё же есть в репозитории, даже если пользователю предлагается ввести свои логин и пароль -- то это как раз та ситуация, о которой я и писал, убеждая всё же быть немного осторожнее.
AdminСоздаем Docker-контейнер с 1C-клиентом для Linux#40 18.10.16 9:22
Никакой паники, я просто подумал, что используется какой-то определенный логин/пароль, а не спрашивается у пользователя.

(39) Infactum, локальный репозиторий -- очень удобно, да конечно в первую очередь для компании.
Да я понял что вы предлагаете и предложил ещё более оптимизированный способ. Так и быть, если проснувшийся спортивный интерес к выходным не иссякнет -- сделаю то, о чем написал выше.
AdminСоздаем Docker-контейнер с 1C-клиентом для Linux#37 17.10.16 22:40
(36) pumbaE, ну как бы смотрите -- доступ на сайт ограничен (привет не только копирастам, но и 272 статье УК РФ).
Доступ осуществляется на платной основе, по договору ИТС, в договоре по мимо всего прочего есть запрет на передачу своего логина пароля третьим лицам, но и запрета этого не нужно на самом деле.
А на деле получается, что некто (возможно находясь в преступном сговоре) предоставил доступ к ресурсу, лицу, которое на такой доступ права не имело. В случае скрипта в репозитории -- массово, т.е. вы предоставили доступ к платному ресурсу "неопределенному кругу лиц", читайте "публичный доступ". Тут даже в мире Linux не все гладко, вы думаете просто так ни один пакетный менеджер без дополнительных "хаков" не поставит в автоматическом режиме oracle-java-jdk или mscorefonts который, кстати zip-архивом у меня в репозитории лежит, хоть и с лицензией внутри, но я на самом деле должен у пользователя явно спросить, выкатив лицензию, типа подпишешь -- продолжим, а не подпишешь -- exit(0) отсюда! Любой юрист вам прояснит, что дело тут пахнет жареным, в плане дать кому-то логин пароль от users.v8.1c.ru, просто особо дела нет кому-то до этого, но внезапно всё может измениться, например, если ваш скрипт станет популярным или нужен будет показательный процесс-порка, ну или просто "нужный" дядя заскучает на работе. Одному знакомому была серьезно испорчена карьера в США, закончилось даже потерей работы и приездом назад в РФ в итоге. Безопасники случайно нарыли небольшую гору "компромата для копираста", чувак разработал эмуль какого-то ключа, от финансовой аналитической системы, причем чисто технически, сам не использовал, не продавал, просто лежали "исследовательские материалы" в репозитории, про который тот уже и забыл за давностью лет. Поэтому я не рекомендую столь халатно относиться к этому вопросу. И вообще -- мир, дружба, opensource!
AdminСоздаем Docker-контейнер с 1C-клиентом для Linux#34 17.10.16 21:48
(31) Infactum, а ещё очень правильно было бы использовать prelink в этом контейнере, причем настроив его руками под это дело, а то и подготовив prelink-образ ручками.
AdminСоздаем Docker-контейнер с 1C-клиентом для Linux#32 17.10.16 21:41
(31) Infactum, всё верно, образ оптимизировался чуть менее, чем нисколько.
Размер docker образа вообщем-то не имеет значения, если вы используете другие контейнеры на той же основе (я вообщем-то не использую debian/ubuntu, так что в моих условиях оверхед есть). Возможно на досуге займусь оптимизацией, если желание и время появится. 1С редко приходится запускать, для какой-нибудь интеграции с какой-нибудь разрабатываемой системой. У меня на всех машинах, что дома, что на работе arch linux, а 1С на чём-нибудь отличном от ubuntu или windows -- это боль и печаль (кстати на 12.04 она показала себя в работе хуже, чем на более свежей -- вылеты, обгрызанные шрифты несмотря на infinality, лаги редактора форм в конфигураторе, "залипания" окна с подсказкой по синтаксису или параметрам, оно просто не пропадает, а остается до перезапуска и куча всего подобного, сразу и не вспомню, так что не знаю что там у них официально поддерживается, я пытался сделать то, что работает)
По поводу репозитория локального -- он конечно должен быть всегда под рукой, но этот путь в данном случае не многим лучше моего "на скорую руку". Верный путь это собрать часть образа с 1С, библиотеками и прочим вообще снаружи контейнера в какой-нибудь squash-fs, выпилить оттуда всё лишнее, затем взять базовый образ ubuntu развернуть, выпилить лишнее и от туда, выгрузить UFS в образ, упаковать её и оптимизировать и склеить в одну транзакцию. Затем загрузить этот образ в новый контейнер, запустить и подмонировать squash, создав сим- или хардлинки в нужные места файловой системы. /tmp /home /var и прочую "динамику" в tmpfs в ramdisk или монтировать из вне, с хост-системы. Кто знает, если вдруг случится со мной проект, работая над которым придется чаще запускать 1С -- я, может быть, "психану" штуковиной, подобной описанному выше. Ну или кто-нибудь другой)
AdminСоздаем Docker-контейнер с 1C-клиентом для Linux#28 19.09.16 2:09
(27) lustin, кстати, да! Я как-то читал это уже, но, представляете -- вылетело из головы. Большое спасибо, что напомнили. Не люблю "копирастов", ведущих себя подобным образом, при этом они могут заюзать с десяток-другой технологий открытых, а потом -- "А знаете, что вы имя наше не используйте и иконку уберите из репозитория", так ещё и помни о каждом. А не собрать ли мне этот контейнер чисто на LXC
Обмен7 причин, почему интеграцию необходимо строить на очередях. Практика RabbitMQ. Отказ от Zato ESB и OData в 1С#103 14.09.16 21:07
(102) Serginio, ну значит, это адов косяк платформы, если всё так, как вы описали. Собственно это не удивительно, я недавно разбирался с одним "глюком", в процессе разборок выяснились подробности, очень "необычного" способа, если не сказать грубее, платформы на Linux искать библиотеки и определять их версии -- парсить консольный вывод ldconf -p
Да, простите, отвечая вам о скорости COM, я не учёл, что работа NativeApi может содержать "интересные" особенности. И если COM платформой используется через MFC/ATL скорее всего, то как там внутри "нагородили" NativeApi, остается только догадываться.
Обмен7 причин, почему интеграцию необходимо строить на очередях. Практика RabbitMQ. Отказ от Zato ESB и OData в 1С#101 14.09.16 18:41
(97) Serginio, COM просто не может быть быстрее NativeApi. COM -- тот ещё известный "тормоз". NativeApi по сути просто вызов кода из динамической библиотеки, с дополнительной трансляцией типов, и то не всегда. COM -- это ровно всё тоже самое, но только предваренное кучей сервисных вызовов, оборачивания объектов в диспетчеры и т.д. Т.е. если в каком-то тестировании оказалось что COM быстрее -- это очень плохое тестирование, я себе плохо представляю что там внутри набыдлокодили, чтобы так вышло.
Обмен7 причин, почему интеграцию необходимо строить на очередях. Практика RabbitMQ. Отказ от Zato ESB и OData в 1С#100 14.09.16 18:35
(22) pfihr, а потом, когда linux будет в тему, что делать с тоннами legacy-кода? Кросплатформенность -- это такая штука, о которой правильно думать сразу, а отложенная на потом -- она будет отложена навсегда или ляжет тяжким грузом на того, кто будет сопровождать систему после "горе-разработчика" напихавшего в неё COM/ActiveX/.NET
.NET может быть с очень большим натягом кросплатформенным, но на средних и больших проектах, особенно в связке с 1С -- это будет стоить огромных усилий.