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С".

 

30 мая - 1 июня 2024 года состоится конференция Анализ & Управление в ИТ-проектах, на которой прозвучит 130+ докладов.

Темы конференции:

  • Программная инженерия.
  • Инструментарий аналитика.
  • Решения 1С: архитектура, учет и кейсы автоматизации на 1С.
  • Управление проектом.
  • Управление продуктом.
  • Soft skills, управление командой проекта.

Конференция для аналитиков и руководителей проектов, а также других специалистов из мира 1С, которые занимаются системным и бизнес-анализом, работают с требованиями, управляют проектами и продуктами!

Подробнее о конференции.

 


См. также

Автотесты для типовых конфигураций ERP Управление предприятием 2 и Комплексная автоматизация 2 (для vanessa automation)

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

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

2220 руб.

04.07.2022    6719    26    0    

22

Системы контроля версий для 1С-разработчиков.

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

Основы командной разработки на 1С. Использование систем контроля версий при разработке на платформе 1С:Предприятие 8

4900 руб.

29.06.2022    9136    78    4    

110

Автотесты для типовых конфигураций Бухгалтерия предприятия КОРП 3.0 и Бухгалтерия предприятия 3.0 (vanessa automation)

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

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

1728 руб.

20.01.2022    6585    10    0    

9

Автоматическое подтверждение легальности обновления базы или как обновить 100 типовых баз 1С за 5 часов

DevOps и автоматизация разработки Обновление 1С Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Расширение для конфигураций 1С для автоматического подтверждения легальности обновления и выполнения обработчиков обновления при пакетном автоматическом обновлении большого числа баз 1С. А также сам модуль обработки по автоматическому обновлению баз.

2 стартмани

08.05.2019    24206    54    VPanin56    26    

26

1С, СППР и Архитектура как код

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

Можно ли идеи подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC.

01.02.2024    2455    roman72    9    

7

TCP прокси-сервер хранилища конфигурации 1С

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

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    2769    kamisov    17    

57

Infrastructure as code: кнопка «Сделать всё», или Упаковываем наше окружение в 5 кБ текста

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

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

01.11.2023    1324    Libelle    5    

13

Обработка для подготовки файла настройки дымовых тестов измененных объектов конфигурации

DevOps и автоматизация разработки Тестирование QA Россия Абонемент ($m)

В статье приведен пример обработки, которая на основании измененных файлов git-репозитория готовит специальный файл настройки xUnitParams.json для последующего выполнения дымовых тестов (xUnitFor1C/add) только для измененных объектов конфигурации

1 стартмани

09.10.2023    705    4    ICL-Soft    0    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 95 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 95 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. фокусник 24 14.06.23 09:21 Сейчас в теме
(6) Добрый день. Так каким образом к вашему контейнеру "прикрутить" свою лицензию на сервер 1С или USB-ключик
8. uan 18.10.21 15:39 Сейчас в теме
Планируется ли обновление образов в связи с новым инсталлятором платформы 1С? Сейчас нет для скачивания пакетов.
18. ZhdanovR 95 01.12.21 09:00 Сейчас в теме
(8) Я занялся сейчас этим вопросом. Но там оказалось несколько сложнее, чем предполагалось. Пришлось еще дорабатывать связанные инструменты и решить, как уменьшить размер самого образа.
Короче дело в процессе, но извиняюсь, что так долго)
9. ZhdanovR 95 26.10.21 18:40 Сейчас в теме
Да, посмотрю на выходных. Если можно зарегистрируйте ишуз на гитхабе с номером версии платформы, на которой проверить
10. Алексей777 92 30.11.21 14:49 Сейчас в теме
Ребята, "не ходите дети в Африку гулять". 1С чем завоевала такую популярность - она создала высокоуровневый язык программирования на платформе 1С, который понятен бизнесу и экономике!!! Это графическая среда, не КОМАНДНАЯ СТРОКА!!! Для прогона тестов Ванессы Вы нашли причину, чтобы развернуть все среды на 1С с технологией Docker??? 1С специалист - это не чистый кодер, это сочетание системных знаний по экономике, БУ, отраслевым экономическим фишкам + код. Я понимаю, что Вы чистые МФТИ, пришедшие в наш мир и пытающиеся в нем найти похожее - не НАДО НАМ ВАШИХ КОМАНДНЫХ СТРОК!!!! Реально, подобные Вам достали. Сорян, просто крик души. Если ВЫ будете дальше в этом направлении работать, то 1С платформа станет обезличенной оболочкой и будет не интересна бизнесу. Соглашусь, также с другими комментами - ни одного подводного камня не описано - а их очень много будет - счастье не в КОМАНДНОЙ СТРОКЕ!!!!
14. ZhdanovR 95 01.12.21 08:48 Сейчас в теме
(10)

Использование командной стоки нужно для автоматизации работы предприятия. Не все действия нужно делать в ручную, нажатием кнопок. Как минимум, бизнесу не выгодно платить работнику з/п за целый день, что бы он ручками нажимал 100500 кнопок, которые скрипт выполнит за 10 минут (ну если вы про интерес бизнеса)
Алексей777; +1 Ответить
29. Алексей777 92 02.12.21 13:14 Сейчас в теме
21. Evil Beaver 8107 01.12.21 09:15 Сейчас в теме
(10) вы правы и неиправы одновременно. Нет такой профессии "1С специалист". Есть специалисты по конкретному решению, по эксплуатции сервера, по написанию кода, по тестированию. Это 4 разных человека, каждый с отдельной зарплатой. Почему то привыкли считать, что это должен быть 1 Вася за три копейки, который ОБЯЗАН знать и уметь и в запросы, и в сервера и в учет. Это пагубное заблуждение. В методологии SAP принципиально написано, что это разные люди. И если сервер тормозит, программист SAP задницу от стула не оторвет. Это работа "базисника", т.е. спеца по серверу. И каждому надо от 400т.р. в месяц, если хочется недорогих саперов.
Поэтому да, специалисту 1С который знает учет - не нужна командная строка. А специалисту по серверу - нужна, и тестировщику - нужна. А вам, как бизнесу, нужны все трое. И еще программисты
Алексей777; +1 Ответить
23. Алексей777 92 02.12.21 02:33 Сейчас в теме
(19)
(21) А Вы, интересно, на чем специализируетесь. Скорее, всего на всем. И код напишите, и в БД разберетесь и судя по теме, ещё и docker виртуализацию развернете. У нас не sap и зп в 400К нет. Не стоит у нас столько платформа 1С. И есть такая профессия, раз сертификаты выдают. Себя и нас не нужно вводить в заблуждение и строить мечты о специализации в системах 1С.
31. Evil Beaver 8107 02.12.21 13:41 Сейчас в теме
(23) я, например, вообще не разбираюсь в методологии типовых. Спросите меня как настроить себестоимость в ерп - понятия не имею
24. Алексей777 92 02.12.21 02:42 Сейчас в теме
(21) Ещё раз! Я не про суть командной строки, да она нужна, наверное, если других альтернатив нет. Человек, который с помощью командных строк делает такие большие объемы работы и каждый день - что мешает написать приложение, какая-то бессмысленная философия.
Не вижу больше смысла дискутировать. У нас разные точки зрения.
28. Алексей777 92 02.12.21 13:13 Сейчас в теме
(21) Извините, Ребята, я не прав.
11. Алексей777 92 30.11.21 15:14 Сейчас в теме
Интересно, а есть ли официальная позиция 1С по инструменту docker?
15. ZhdanovR 95 01.12.21 08:49 Сейчас в теме
(11) А какая Вам нужна позиция? Прошлый DevCon смотрели? там публично сказали, что активно используют докер для целей тестирования прикладных решений.
Алексей777; +1 Ответить
20. Evil Beaver 8107 01.12.21 09:09 Сейчас в теме
(11) а главное, по windows, по windows есть официальная позиция?
ZhdanovR; +1 Ответить
25. Алексей777 92 02.12.21 03:10 Сейчас в теме
(20) чего человек сказал, или сказать хотел - непонятно...
12. Алексей777 92 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 95 01.12.21 08:53 Сейчас в теме
(12)Не понял причем тут vagrant и docker и фреш? Вы перемешиваете стек технологии с бизнес пользой. Любую задачу можно сделать кучей вариантов. Использование докера - это технический вариант. Если Вым нравится использование vm box и vagrant - проходите мимо. Это не ваш случай.
Алексей777; +1 Ответить
13. Алексей777 92 30.11.21 15:20 Сейчас в теме
"В репозитарии https://github.com/thedemoncat/onec-images-docs я собрал коллекцию своих образов для развертывания платформы 1С:Предприятие" - это сейчас подписку у Автора мы покупать должны )))
19. Evil Beaver 8107 01.12.21 09:08 Сейчас в теме
(13) чего человек сказал, или сказать хотел - непонятно...
27. Алексей777 92 02.12.21 13:13 Сейчас в теме
(19) Извините, Ребята, я не прав.
ZhdanovR; Evil Beaver; +2 Ответить
17. ZhdanovR 95 01.12.21 08:57 Сейчас в теме
В репозитарии лежат исходники образов. Клонируете себе, читаете инструкцию, указываете логин/пароль к users.1c.ru и собираете. Мне как автору ничего платить не надо. Исходники образов открытые и не содержат в себе дистрибутивы платформы, так как это не разрешается по условиям пользовательского соглашения.
По мне так, вы генерите сообщения в теме, суть которой совсем не понимаете. Зачем вы это делаете - не понятно.
Evil Beaver; +1 Ответить
22. Алексей777 92 02.12.21 02:24 Сейчас в теме
(17) Что именно делаю, пишу о том, что ваши образы сложны для понимания и проще на ИТС взять инструкцию и по ней развернуть платформу на unix подобных системам - да, это проще + поддержка от 1С. Что непонятного написал?
26. Алексей777 92 02.12.21 13:13 Сейчас в теме
(17) Извините, Ребята, я не прав.
AlexK_2012; UnNamsa; Evil Beaver; ZhdanovR; +4 Ответить
30. ZhdanovR 95 02.12.21 13:19 Сейчас в теме
(26) На моей истории Вы первый человек, который так неожиданно признал свою ошибку)
Даже я так не смог бы - меня мое же самомнение и задушит.
И я говорю честно и без сарказма.
Мое почтение)
32. Алексей777 92 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 было бы совсем хорошо. Докер для постгреса и докер для платформы. Чем не способ для доставки?
Оставьте свое сообщение