Docker для 1Сника

07.06.21

Разработка - DevOps и автоматизация разработки

На онлайн митапе «DevOps в 1С» Руслан Жданов рассказал, для чего 1С-нику нужен Docker, как его применять, какие сервисы можно вынести в контейнеры и как организовать взаимодействие контейнеров друг с другом.

Docker – это не страшно, это очень интересная штука. Единственное, рассказать о нем за 40 минут доклада нереально, поэтому погружение будет поверхностным. Я сначала кратко расскажу теорию, а потом покажу, как я с ним работаю.

 

 

Будем говорить:

  • о том, что такое Docker, какие у него основные элементы и как им управлять;

  • зачем Docker нужен – в каких задачах используется, когда и откуда пришел;

  • я попытаюсь объяснить, что это не сложно, это интересно;

  • философия Docker состоит в том, что все объекты должны находиться в определенных местах – это значит, что все наши сервисы должны иметь свой домик, который является контейнером Docker.

 

Что такое Docker

 

 

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

Основное отличие между виртуальными машинами и Docker в том, что контейнеры Docker не включают прослойку операционной системы, а запускаются на ядре хостовой операционной системы, и за счет этого позволяют достигать более быстрых запусков и меньших объемов.

Если мы возьмем виртуальную машину на базе Hyper-V, VirtualBox или еще какого-нибудь инструмента виртуализации, накатим на нее ОС, которая весит от 200 мб для Linux до 12 Гб для Windows, то вся эта махина будет запускаться долго и медленно. При этом изоляция у нее выше по сравнению с Docker.

Но Docker запускается не так – он создает изолированное пространство относительно вашей хостовой операционной системы, и в нем начинают работать ваши сервисы.

Docker так и завоевал популярность во всем мире, как самый удобный инструмент виртуализации. Тот же самый Kubernetes под капотом тоже использует виртуализацию Docker. А на базе Kubernetes и такой контейнерной виртуализации построено подавляющее большинство веб-сервисов и веб-платформ.

Изучать Docker в любом случае нужно для собственного развития. И в плане использования в 1С он тоже сильно помогает.

 

Контейнер и образ

 

 

Давайте разделим Docker на две основные части: образ и контейнер.

Давайте вспомним, когда мы покупали ПО на дисках. Образ – это и есть лазерный диск, слепок вашего программного обеспечения. Образ у вас один. Он может находиться у вас, в облаке, вы можете его собрать из исходников.

У диска есть дорожки, а у образа – слои. Каждая команда, которая формирует этот образ, накладывает в образе свой слой. Это позволяет в дальнейшем экономить дисковое пространство за счет переиспользования слоев нескольких образов. Допустим, у вас есть 3-4 образа, каждый из которых использует в качестве первого слоя операционную систему Ubuntu. С Docker вам не надо в вашей системе хранить несколько слоев с Ubuntu: вам достаточно одного слоя, который будут использовать все образы. Это называется переиспользование.

Когда вы начинаете запускать свое приложение на базе образа, вы запускаете контейнер – это, по факту, экземпляр приложения, сущность, которая предоставляет вам сервис.

Контейнер с точки зрения концепции Docker – некая сущность, которая живет недолго. Он должен родиться, поработать, и в дальнейшем уничтожиться. Все данные которые необходимо сохранить, монтируются к контейнеру в качестве подключаемых разделов.

 

Linux vs Windows

 

 

Где работает эта магия?

Родной операционной системой для docker является OS Linux, но время не стоит на месте и в текущий момент есть возможность запускать контейнеры и на операционной системе Windows/ Причем, появились и контейнеры на базе операционной системы Windows

 

 

В настоящее время в Windows реализована функция WSL2 – поддержка Windows Subsystem for Linux. Она поддерживается с версии сборки 19041 и позволяет полноценно работать с Linux-оболочкой в ОС Windows.

Если вы хотите попробовать поработать с Docker на Windows, есть два варианта:

  • поставить виртуальную машину с Linux на Windows и устанавливать Docker в нем;

  • либо поставить WSL2 и разобраться, как в ней работать с Docker. В WSL2 решено большое количество проблем, она работает более стабильно. Если вы работаете в VS Code – там есть классные плагины поддержки WSL прямо внутри среды. Вы можете работать с файловой системой виртуальной машины внутри VS Code.

Рекомендация простая - если работаете на Windows – используйте WSL2.

 

 

В продуктивной среде, правильнее работать с Docker на Linux – так как его родная операционная система, и на ней будет минимальное количество проблем.

Еще один момент, который стоит отметить: контейнеры бывают двух вариантов – на базе образов операционных систем Windows и Linux.

В интернете размещено большое количество уже собранных образов и исходников для Linux-контейнеров.

Windows-контейнеры тоже появляются, но там есть свои проблемы:

  • Windows-контейнеры не содержат графической оболочки, поэтому работа с приложениями, имеющими завязку на GUI, будет вызывать проблемы. Например, при запуске клиента 1С вы не увидите, что происходит внутри контейнера и дополнительная установка, например, VNC проблему не решит.

  • Windows требует, чтобы версия ОС хоста соответствовала версии ОС контейнера. Если вы хотите запустить контейнер на основе новой сборки Windows, убедитесь, что у вас есть эквивалентная сборка хоста

  • Требования наличия лицензии на запуск. Вы не можете использовать образ контейнера, если у вас нет лицензии на соответствующую версию ОС

Стоит отметить, что на текущий момент Windows позволяет запускать как линуксовые, так и Windows-контейнеры, но на OS Linux можно запустить только Linux-контейнеры.

Для Linux разработано большое количество уже готовых образов под различные нужды, поэтому найти что-то полезное не представляется сложностью.

 

Docker Registry

 

 

Где хранятся образы.

Если вы собрали образ из исходников сами, он будет храниться у вас на локальной машине. Или образ можно скачать из Docker Registry – это хаб, предназначенный для хранения образов. Они хранятся там в виде слоев, чтобы экономить пространство.

  • Образы бывают публичные и приватные. Публичные – доступные всем без ограничений. Приватные – те, к которым требуется авторизованный доступ.

  • Docker Registry можно развернуть у себя, чтобы собирать и хранить образы у себя.

  • Docker Registry позволяет экономить время при развертывании окружения на разных машинах. При развертывании контейнера не требуется его каждый раз пересобирать, что в некоторых случаях может занимать достаточно больше время.

 

Docker Compose

 

 

Помимо основной команды Docker есть утилита Docker-compose, которая позволяет манипулировать группой контейнеров и запускать их одним скриптом.

 

 

На слайде показан пример из официального репозитория GitLab: здесь через командную строку запускается Docker-контейнер GitLab.

Сложность запуска контейнера Docker как утилиты командной строки в том, что мы не можем хранить параметры и команду запуска в виде кода. Если вам нужно одновременно развернуть несколько связанных контейнеров, команда может быть достаточно большой. Причем нужно будет четко понимать какой из сервисов нужно запустить раньше, какой позже. Убедиться, что сервис уже готов принимать подключения перед запуском последующего. это очень удобно делать в ручную. Когда производится запуск множества групп контейнеров, этот квест существенно усложняется – нам приходиться манипулировать в голове кучей параметров, пытаясь понять, в каком месте мы ошиблись, почему это не работает.

Поэтому и придумали Docker Compose – файлик в формате YAML, который описывает запуск контейнера и сервисов, взаимосвязь этих контейнеров между собой.

 

 

Вы берете готовый Docker Compose либо открываете текстовый редактор и декларативно описываете, как должен выглядеть ожидаемое вами развертывание.

В тексте Docker Compose описываете:

  • все способы взаимодействия сервисов между собой;

  • дополнительные параметры (используемые порты, устанавливаемые образы);

  • монтирование разделов, устройств, сокетов и прочего с хостовой ОС.

После того как манифест docker-compose будет готов, сервис запускается одной командой:

docker-compose up -d

Эти файлики Docker Compose вы можете хранить в своей инфраструктуре и так же их версионировать, меняя какие-то параметры.

 

Правила работы с Docker

 

 

Есть правила работы с Docker, к которым надо стремиться.

  • Стараться выделять каждому сервису свой контейнер. Утилита RAS должна жить в своем контейнере, не должно быть одновременно и сервер 1С и RAS, это неправильно. Nginx тоже должен жить в своем контейнере, Traefik – тоже.

  • Контейнер должен быть максимально легким, в нем не должно храниться временных файлов, и не должен быть основан на тяжелых ОС. Нужно выбирать все самое маленькое и легкое, чтобы экономить дисковое пространство и быстро запускать. Если сервис горизонтально масштабируется в 100 раз, то 100 Мб лишнего места уже займет достаточно большое дисковое пространство.

  • Стараться подробно описывать версии устанавливаемых приложений внутри образа. Это необходимо для того, что бы при последующей сборке образа мы гарантированно получили идентичное окружение, а не отличную версию из за того, что обновились зависимости. В некоторых случаях это может вызвать серьезные проблемы в работе контейнера.

  • Желательно, чтобы образы могли взаимодействовать между собой. Странно будет, если будет существовать контейнер, который не взаимодействует ни с хостовой системой, ни между собой. По факту, это мертворожденный контейнер, он сам по себе висит, что-то делает, но куда выдает данные и с кем обменивается непонятно.

  • Следите за тем, чтобы после вашей работы старые данные и старые контейнеры после работы удалялись. Система должна быть чистой. Для правильного Docker-хоста на хосте должно быть установлено минимальное количество программ.

 

Практика

 

Перейдем к технической части. Давайте я покажу, что у меня стоит. На этой машине установлен Docker 19 версия, одна из самых последних. Операционная система Ubuntu.

 

Traefik

 

В первую очередь, я использую Traefik – что это такое, более подробно можно прочитать на сайте https://doc.traefik.io/traefik/.

Traefik – это реверс-прокси, который позволяет нам публиковать ресурсы в интернете. Это альтернатива Nginx, обладающая немного более богатыми возможностями. Основная преимущество Traefik – он может в автоматическом режиме публиковать уже развернутые контейнеры в интернете.

Traefik слушает два порта: 80 и 443. Все входящие запросы на эти порты он анализирует через свои правила и смотрит, относительно какого URL идет обращение. И в зависимости от URL запросы заворачиваются на контейнеры, которым установлен определенный лейбл.

Дополнительным плюсом является то, что Traefik с коробки может работать с сертификатами выписанными Letsencript, как для основного домена, так и поддоменов любого уровня.

 

Разворачивание контейнера с Jenkins

 

 

Это выглядит так – у нас есть файл docker-compose.yml, который поднимает сервис Jenkins.

Traefik просматривает все существующие Docker-контейнеры и ищет лейблы. Если он находит лейбл с указанием traefik.enable=true, он включается и начинает маршрутизировать трафик, который на него идет.

 

 

В частности, публикует этот сервис по от указанному URL.

Чтобы запустить Jenkins, мне нужно вызвать команду:

docker-compose up -d

Контейнер с Jenkins запустился и работает, а на сайте ci.demoncat.ru выводится приглашение Jenkins.

Как видите, я развернул Jenkins с нуля за 20 минут – все запустилось одной командой.

 

Разворачивание контейнера с GitLab

 

 

Теперь я хочу запустить контейнер с GitLab. Файл Docker-compose.yml для него скачан с репозитория https://github.com/sameersbn/docker-gitlab, найденного в Google. Я только настроил в нем параметры и добавил сюда лейблы для Traefik.

Также с помощью команды docker-compose up -d я могу могу этот контейнер поднять.

 

 

Здесь запускается сразу несколько сервисов: Redis, Postgre, GitLab. У них есть определенный набор переменных, с помощью которых они взаимодействуют.

И есть виртуальная сеть proxy, которая взаимодействует с ними и Traefik. Внутри этой сети как раз и проходит маршрутизация Traefik.

Если мы зайдем на сайт git.demoncat.ru, который прописан в переменной GITLAB_HOST_RULE, у нас откроется GitLab. Здесь тоже никакой магии нет.

 

Разворачивание контейнера с сервером 1С:Предприятия

 

В репозитарии https://github.com/thedemoncat/onec-images-docs я собрал коллекцию своих образов для развертывания платформы 1С:Предприятие. Причем скачивание платформы будет происходить во время сборки образа и от вас понадобиться только логин/пароль к https://releases.1c.ru/

Теперь возьмем образ 1С, который вы можете без проблем развернуть у себя из репозитория https://github.com/thedemoncat/onec-instance/. При развертывании в среде wsl2 нужно сделать несколько больше действий, для того чтобы получить доступ к платформе. Подробнее можно почитать в readme.md

Этот репозиторий нужно обязательно клонировать с сабмодулями командой:

git clone --recursive https://github.com/TheDemonCat/onec-instance.git

Дело в том, что здесь два репозитория подключены в качестве сабмодулей, без их загрузки ничего не запустится.

 

 

Внутри репозитория есть файл-пример env.example.

Его нужно скопировать, скопированный файл назвать .env и указать в нем свой логин-пароль от ИТС.

На OS Linux запускаю сборку образов и запуск сервера командой:

./onec_instance.sh start

На Linux дополнительно потребуется указать пароль суперпользователя, чтобы произошла запись в файла в hosts. Иначе при подключении к 1С-ке вы получите проблему несоответствия принадлежности клиента и сервера.

На OS Windows нужно в ручную прописать IP адрес виртуальной машины wsl2 в файл hosts.

 

 

В качестве примера я создам чистую серверную базу:

  • Кластер серверов 1С:Предприятие: onec_server

  • Имя информационной базы в кластере: test

  • Тип СУБД: PostgreSQL

  • Сервер баз данных: db

  • Имя базы данных: test

  • Пользователь баз данных: postgres

  • Пароль пользователя баз данных оставляем пустым

Нажимаю ОК и жду, пока база создастся. Несколько секунд – и все, база рабочая, можно играться.

Таким образом можно разворачивать быстрые 1С-окружения. Фишка репозитория в том, что можно указать версию платформы, она выкачается и соберется в нужной версии.

 

Разворачивание контейнера с PGAdmin

 

Чтобы быстро развернуть PGAdmin, клонируем репозиторий https://github.com/khezen/compose-postgres.

 

 

Внесем изменения в файл docker-compose.yml.

  • Секция postgres нам здесь не нужна, мы ее отсюда удаляем.

  • Порты закомментируем,

  • Вставим настройки для Traefik.

  • Имя внешней сети у меня называется proxy.

Больше ничего менять не будем.

Теперь поднимаю контейнер по команде:

docker-compose up -d

Логи от каждого контейнера можно посмотреть по команде:

docker-compose logs -f

Переходим по адресу pgadmin.demoncat.ru – открывается PGAdmin.

Таким образом работает Docker и его взаимосвязь между различными сервисами.

Этих сервисов очень много. Вы можете зайти на https://hub.docker.com/ и здесь есть огромное количество образов на все случаи жизни, которые вы можете посмотреть, скопировать и переделать под себя.

 

Вопросы

 

Я знаю, что Hyper-V на Windows не уживается со всеми остальными гипервизорами, типа VirtualBox. А как проявляет себя WSL2?

Действительно, Hyper-V и VirtualBox между собой конфликтуют. У Docker в Windows есть поддержка экспериментальных функций, которая позволяет не создавать виртуальную машину в гипервизоре, а использовать линуксовый движок ядра. Но как это работает, я сказать точно сказать не могу, потому что я очень редко использую Docker на Windows – он не работает на нем стабильно. Можно использовать Docker на Windows для тестов, можно поиграться, а на продуктив ставить пока что, к сожалению, не стоит.

UPD: Недавно узнал, что на последних версиях wsl2 уже не конфликтует с другими гипервизорами. Но не проверял.

Эталонная база очень большая – 250 Гб. Если я эту базу упакую в Docker, где будет сидеть еще и 1С и все остальное окружение, как такого монстра разворачивать?

База – это все-таки данные. Я знаю примеры, когда люди упаковывают базу именно в Docker и потом его поднимают. Но я не пробовал упаковывать такие огромные базы в сам контейнер. Мне кажется, лучше сделать так – данные базы будут храниться в каком-то именованном volume, а в контейнере понимается сервис – тот же postgres. И он подцепляет в качестве источника данных этот именованный volume вовнутрь. Таким вариантом можно сделать, но тут другой вопрос – Docker подразумевает, что нужно быстро создать новое окружение и что-то на нем потестить, а как быстро создать новую копию базы на 250 Гб я пока не знаю.

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на онлайн-митапе "DevOps в 1С: Тестирование и контроль качества решений на 1С".

См. также

DevOps для 1С DevOps и автоматизация разработки Программист Стажер Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

2500 руб.

20.06.2023    22273    2    4    

310

SALE! 50%

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Программист Стажер Платформа 1С v8.3 Платные (руб)

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 2450 руб.

29.06.2022    11934    99    4    

131

DevOps и автоматизация разработки Тестирование QA Программист Пользователь Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.57.

2160 руб.

05.08.2024    1280    12    1    

7

DevOps и автоматизация разработки Логистика, склад и ТМЦ Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.7.3 / не ниже 8.3.21.1664, начиная с релиза 1.0.4.30 требуется платформа не ниже 8.3.23 рекомендуемый релиз 8.3.23.1997

7000 руб.

26.08.2022    12557    10    10    

35

Тестирование QA DevOps и автоматизация разработки Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.113.

2400 руб.

04.07.2022    8368    38    1    

29

Тестирование QA DevOps и автоматизация разработки Программист Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.156.30.

1800 руб.

20.01.2022    7783    19    0    

13

DevOps и автоматизация разработки Программист Платформа 1С v8.3 Бесплатно (free)

В проектной разработке часто возникают проблемы с однообразностью ландшафта, производительностью и быстрой разверткой инфраструктуры. Об одном из способов избежать или изолировать данные проблемы с помощью контейнеризации расскажем в статье.

18.09.2024    1730    antonov_av    6    

14

DevOps и автоматизация разработки Бесплатно (free)

Когда информационная база «весит» несколько десятков/сотен гигабайт, для разработки и тестирования обычно используют полную копию рабочей базы. Но если информационная база превышает несколько терабайт, такой подход сталкивается с нехваткой места на диске, долгой реструктуризацией, замедленной скоростью работы и другими проблемами, связанными с размером базы. В статье расскажем, как правильно готовить копии больших баз для разработки и тестирования.

28.08.2024    6589    yuraid    28    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. OstHusky 32 07.06.21 11:48 Сейчас в теме
Статья заканчивается как раз на самом интересном месте и не раскрывает самого главного, что я ожидал увидеть. Какие проблемы, привязанные к 1С, может решить использование Docker по сравнению с отдельным сервером 1С для тестирования? Какие ошибки могут быть выявлены таким образом, которые останутся при использовании отдельного сервера, какое практическое преимущество разделения сервисов на докер контейнеры?
Anhaier; dk77; cheshirshik; cleaner_it; UnNamsa; defender; Pipapalamm; akimych; papami; criptid; titov_0; asemencha; alexander-pro; awk; +14 Ответить
2. ZhdanovR 98 07.06.21 12:36 Сейчас в теме
(1)Все таки это вычитка моего прошлогоднего доклада, а не полноценная статья)

Преимущество докера по факту не связанны как таковые с 1С. Это просто способ быстрого развертывания унифицированного окружения. Согласитесь, удобно поднять полностью рабочий сервер для разработки с помощью одной команды. Очень активно докер используется для выполнения тестов (bdd, tdd).
Использование докера не даст Вам возможность выявить большее количество ошибок по тем же тестам, но может помочь несколько в другом. Если у Вас достаточно ресурсов, вы можете повторить весь процесс сборки и тестирования и на виртуальных машинах. Разница будет только во времени инициализации окружения и объему занимаемых ресурсов для этого окружения. Но при использовании докера, вы можете на одном и том же хосте запускать параллельно множество различных версий без опасения получить конфликты.
Так же и использование docker swarm или kubernetes даст вам большой выигрыш в автоматизации развертывания инфраструктуры или же в возможности горизонтального масштабирования (например, что бы прогнать параллельно тесты и сэкономить время)
Вообще выявление ошибок тестирования это все же совсем другая область, которая под капотом может содержать и докер и кубер или же обычные VM.
3. OstHusky 32 07.06.21 13:09 Сейчас в теме
(2) То есть получается, что критерии выбора для использования этой технологии следующие:
1) Если требуется часто создавать окружения для разработчиков (большое количество разработчиков, и\или их частая ротация)
2) Если количество тестов таково, что параллельное выполнение необходимо для разработки. Докер в этом случае как альтернатива виртуализации с экономией времени и ресурсов. Хотя виртуализация настраивается только один раз. Поэтому тут преимущество наверно только, если количество тестовых виртуальных серверов часто меняется.
3) Все-таки я наверно могу назвать уменьшение количества ошибок инфраструктуры, если докер используется для развертывания на прод. Например, для нового функционала потребовался новый ком компонент, на тестовом стенде без докера разработчик его зарегистрировал, а при переносе на прод забыл. Докер может решить такую проблему, один раз добавив этот компонент в докер он будет гарантированно переносится в прод.

Если что-то неверно, поправьте, это будет полезно.
За статью однозначный +, хотя на мой взгляд его применение до сих пор часто не оправдано, если нет проблем, перечисленных выше.
4. ZhdanovR 98 07.06.21 14:30 Сейчас в теме
(3) Первый пункт полностью верны, второй - виртуальные машины имеют свойство забиваться всяким мусором и приходится их пересоздавать. Тут несколько вариантов: либо раз в определенный период либо перед началом тестирования. У каждого есть из вариантов свои плюсы и свои минусы. Но в любом случае это долго и увеличивает количество задействованных ресурсов в разы.

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

Не забывайте, что в докере можно же использовать и какие-то другие приложения, которые могут потребоваться в работе. Причем не обязательно связанные с 1С.
5. asemencha 11.06.21 15:04 Сейчас в теме
И самое главное - тема лицензирования 1С не раскрыта!
zebr; ivanovkpd; i_lo; akimych; nite2010; criptid; titov_0; +7 Ответить
6. GreenDragon 14.06.21 01:39 Сейчас в теме
(5) А что не так с лицензированием?
7. asemencha 22.06.21 14:34 Сейчас в теме
(6) Не понятен процесс выдачи лицензий 1С.
1 лиц на контейнер? Что по поводу лиц на серверную часть?
Да и в целом как лицензируется 1С в таком представлении.
35. фокусник 25 14.06.23 09:21 Сейчас в теме
(6) Добрый день. Так каким образом к вашему контейнеру "прикрутить" свою лицензию на сервер 1С или USB-ключик
8. uan 18.10.21 15:39 Сейчас в теме
Планируется ли обновление образов в связи с новым инсталлятором платформы 1С? Сейчас нет для скачивания пакетов.
18. ZhdanovR 98 01.12.21 09:00 Сейчас в теме
(8) Я занялся сейчас этим вопросом. Но там оказалось несколько сложнее, чем предполагалось. Пришлось еще дорабатывать связанные инструменты и решить, как уменьшить размер самого образа.
Короче дело в процессе, но извиняюсь, что так долго)
9. ZhdanovR 98 26.10.21 18:40 Сейчас в теме
Да, посмотрю на выходных. Если можно зарегистрируйте ишуз на гитхабе с номером версии платформы, на которой проверить
10. Алексей777 100 30.11.21 14:49 Сейчас в теме
Ребята, "не ходите дети в Африку гулять". 1С чем завоевала такую популярность - она создала высокоуровневый язык программирования на платформе 1С, который понятен бизнесу и экономике!!! Это графическая среда, не КОМАНДНАЯ СТРОКА!!! Для прогона тестов Ванессы Вы нашли причину, чтобы развернуть все среды на 1С с технологией Docker??? 1С специалист - это не чистый кодер, это сочетание системных знаний по экономике, БУ, отраслевым экономическим фишкам + код. Я понимаю, что Вы чистые МФТИ, пришедшие в наш мир и пытающиеся в нем найти похожее - не НАДО НАМ ВАШИХ КОМАНДНЫХ СТРОК!!!! Реально, подобные Вам достали. Сорян, просто крик души. Если ВЫ будете дальше в этом направлении работать, то 1С платформа станет обезличенной оболочкой и будет не интересна бизнесу. Соглашусь, также с другими комментами - ни одного подводного камня не описано - а их очень много будет - счастье не в КОМАНДНОЙ СТРОКЕ!!!!
14. ZhdanovR 98 01.12.21 08:48 Сейчас в теме
(10)

Использование командной стоки нужно для автоматизации работы предприятия. Не все действия нужно делать в ручную, нажатием кнопок. Как минимум, бизнесу не выгодно платить работнику з/п за целый день, что бы он ручками нажимал 100500 кнопок, которые скрипт выполнит за 10 минут (ну если вы про интерес бизнеса)
Алексей777; +1 Ответить
29. Алексей777 100 02.12.21 13:14 Сейчас в теме
21. Evil Beaver 8243 01.12.21 09:15 Сейчас в теме
(10) вы правы и неиправы одновременно. Нет такой профессии "1С специалист". Есть специалисты по конкретному решению, по эксплуатции сервера, по написанию кода, по тестированию. Это 4 разных человека, каждый с отдельной зарплатой. Почему то привыкли считать, что это должен быть 1 Вася за три копейки, который ОБЯЗАН знать и уметь и в запросы, и в сервера и в учет. Это пагубное заблуждение. В методологии SAP принципиально написано, что это разные люди. И если сервер тормозит, программист SAP задницу от стула не оторвет. Это работа "базисника", т.е. спеца по серверу. И каждому надо от 400т.р. в месяц, если хочется недорогих саперов.
Поэтому да, специалисту 1С который знает учет - не нужна командная строка. А специалисту по серверу - нужна, и тестировщику - нужна. А вам, как бизнесу, нужны все трое. И еще программисты
Алексей777; +1 Ответить
23. Алексей777 100 02.12.21 02:33 Сейчас в теме
(19)
(21) А Вы, интересно, на чем специализируетесь. Скорее, всего на всем. И код напишите, и в БД разберетесь и судя по теме, ещё и docker виртуализацию развернете. У нас не sap и зп в 400К нет. Не стоит у нас столько платформа 1С. И есть такая профессия, раз сертификаты выдают. Себя и нас не нужно вводить в заблуждение и строить мечты о специализации в системах 1С.
31. Evil Beaver 8243 02.12.21 13:41 Сейчас в теме
(23) я, например, вообще не разбираюсь в методологии типовых. Спросите меня как настроить себестоимость в ерп - понятия не имею
24. Алексей777 100 02.12.21 02:42 Сейчас в теме
(21) Ещё раз! Я не про суть командной строки, да она нужна, наверное, если других альтернатив нет. Человек, который с помощью командных строк делает такие большие объемы работы и каждый день - что мешает написать приложение, какая-то бессмысленная философия.
Не вижу больше смысла дискутировать. У нас разные точки зрения.
28. Алексей777 100 02.12.21 13:13 Сейчас в теме
(21) Извините, Ребята, я не прав.
11. Алексей777 100 30.11.21 15:14 Сейчас в теме
Интересно, а есть ли официальная позиция 1С по инструменту docker?
15. ZhdanovR 98 01.12.21 08:49 Сейчас в теме
(11) А какая Вам нужна позиция? Прошлый DevCon смотрели? там публично сказали, что активно используют докер для целей тестирования прикладных решений.
Алексей777; +1 Ответить
20. Evil Beaver 8243 01.12.21 09:09 Сейчас в теме
(11) а главное, по windows, по windows есть официальная позиция?
ZhdanovR; +1 Ответить
25. Алексей777 100 02.12.21 03:10 Сейчас в теме
(20) чего человек сказал, или сказать хотел - непонятно...
12. Алексей777 100 30.11.21 15:17 Сейчас в теме
Нашел на ИТС:
1.2. Установка Oracle VirtualBox
Для автоматизированного развертывания тестового стенда Фреш используется свободно используемая (распространяемая по лицензии GNU) система виртуализации Oracle VirtualBox.

Для использования Oracle VirtualBox необходимо выполнить следующие действия:

1. Установить на компьютер, на котором будет развертываться тестовый стенд, систему виртуализации Oracle VirtualBox версии 5.ХХ (ссылки на скачивание расположены на веб-странице: https://www.virtualbox.org/wiki/Downloads). Рекомендуется использовать последнюю версию Oracle VirtualBox.

2. Установить Oracle VM VirtualBox Extension Pack той же версии.

ПРИМЕЧАНИЕ. Для автоматизированного развертывания тестового стенда Фреш возможно использование и других систем виртуализации, например Hyper-V, Docker, VMware Workstation, VMware Fusion. Для этого необходимо установить модуль сопряжения (провайдера) для Vagrant и настроить секцию config.vm.provider в файлах Vagrantfile шаблонов автоматизированного развертывания тестового стенда Фреш.

Получается, что только - как альтернатива. Это и было понятно, изначально, что для Фреша докер может как-то пригодиться ... У нас, что каждое предприятие в облаке работает?
16. ZhdanovR 98 01.12.21 08:53 Сейчас в теме
(12)Не понял причем тут vagrant и docker и фреш? Вы перемешиваете стек технологии с бизнес пользой. Любую задачу можно сделать кучей вариантов. Использование докера - это технический вариант. Если Вым нравится использование vm box и vagrant - проходите мимо. Это не ваш случай.
Алексей777; +1 Ответить
13. Алексей777 100 30.11.21 15:20 Сейчас в теме
"В репозитарии https://github.com/thedemoncat/onec-images-docs я собрал коллекцию своих образов для развертывания платформы 1С:Предприятие" - это сейчас подписку у Автора мы покупать должны )))
19. Evil Beaver 8243 01.12.21 09:08 Сейчас в теме
(13) чего человек сказал, или сказать хотел - непонятно...
27. Алексей777 100 02.12.21 13:13 Сейчас в теме
(19) Извините, Ребята, я не прав.
ZhdanovR; Evil Beaver; +2 Ответить
17. ZhdanovR 98 01.12.21 08:57 Сейчас в теме
В репозитарии лежат исходники образов. Клонируете себе, читаете инструкцию, указываете логин/пароль к users.1c.ru и собираете. Мне как автору ничего платить не надо. Исходники образов открытые и не содержат в себе дистрибутивы платформы, так как это не разрешается по условиям пользовательского соглашения.
По мне так, вы генерите сообщения в теме, суть которой совсем не понимаете. Зачем вы это делаете - не понятно.
Evil Beaver; +1 Ответить
22. Алексей777 100 02.12.21 02:24 Сейчас в теме
(17) Что именно делаю, пишу о том, что ваши образы сложны для понимания и проще на ИТС взять инструкцию и по ней развернуть платформу на unix подобных системам - да, это проще + поддержка от 1С. Что непонятного написал?
26. Алексей777 100 02.12.21 13:13 Сейчас в теме
(17) Извините, Ребята, я не прав.
AlexK_2012; UnNamsa; Evil Beaver; ZhdanovR; +4 Ответить
30. ZhdanovR 98 02.12.21 13:19 Сейчас в теме
(26) На моей истории Вы первый человек, который так неожиданно признал свою ошибку)
Даже я так не смог бы - меня мое же самомнение и задушит.
И я говорю честно и без сарказма.
Мое почтение)
32. Алексей777 100 02.12.21 14:07 Сейчас в теме
33. None546674 06.06.22 16:42 Сейчас в теме
Привет, а решение для продакшна норм? Есть у кого такой опыт?)
Еще вопрос - постгрес в контейнер засунуть тоже можно? Есть ли у кого такой экспириенс? Или лучше как standalone хост оставить?
По производительности будет все ок?
34. aleksxx 71 11.02.23 04:34 Сейчас в теме
Приветствую. Случайно не реализовывали сервер лицензирования в Docker?
36. user1584042 10.10.23 12:24 Сейчас в теме
А вот вопрос лицензирования остался без ответа. Ни в статье, ни когда прямо задали этот вопрос. 1С не работает без лицензии. Вы же не про ломаные версии нам рассказываете? Отсюда вопрос- как происходит установка лицензий, куда - в докер, или на хостовую машину если программые, а если аппаратные - то каким образом работает проброс ключа в докер?
37. maxtar 29.02.24 22:15 Сейчас в теме
В kubernetes было бы совсем хорошо. Докер для постгреса и докер для платформы. Чем не способ для доставки?
Оставьте свое сообщение