Клиентская часть 1С:Предприятия в rootless podman-контейнере

05.10.26

Администрирование - Linux

Как запускать клиентские приложения 1С:Предприятие 8.3 на хосте Linux (KDE Plasma, Wayland или другое окружение) в rootless podman-контейнере, ничего не устанавливая в систему хоста.

Что случилось и зачем это

Так-то я давно не программист и не 1Сник. Но тут понадобилось посмотреть некоторые моменты в 1С, а у меня уже лет 7 даже ОС Windows на рабочем ПК нет. Но случайно купленная "антикризисная" 1С есть и community лицензию никто не отменял. Ставить полноценно 1С в свой любимый уютный арчик я конечно же не буду. Тянуть невнятную гору зависимостей - не-не-не, это точно не наш путь. Ставить виртуальную машину (ВМ) с Windows теоретически можно, но практически даже с моими 128 ГБ RAM, я стараюсь избегать больших и тяжёлых ВМ. А тут - Windows, да у неё минимальный образ что-то типа десятков ГБ! Нет, конечено, тоже не наш метод.

И 1С сопровождает дистрибутивы для linux как-то не то чтобы совсем плохо, но, видимо, по остаточному принципу. То неточная информация, то какие-то странные моменты с поддерживаемыми дистрибутивами и компонентами. Где их клиенты до сих пор Windows покупают - ума не приложу :) , но видимо клиентов под linux не очень-то и много.

Было бы классно, если бы 1С предоставляла, например, flatpak пакеты или что-то подобное для быстрого развёртывания, но... Но я, кажется, был первый, кто предложил это в @platform_suggestions



 

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

 

Что и как делать

А что же делать тогда нам, простым linux-извращенцам? А почему бы не заковырять клиента 1С к контейнер? К тому же у меня и так большая часть задачек изолированы по контейнерам. Большинство слышат "контейнер" и сразу думают "Docker", но у меня не docker, а podman. В целом, с точки зрения возможностей и простого пользователя они абсолютно заменяемы, так что обычно можно просто алиас назначить и всё работает, но внутри они отличаются (у podman нет постоянно висящей в памяти службы, например).

Замечу, что контейнер заметно отличается от виртуальной машины. Виртуальная машина запускается гипервизором, который запускается изолированное от реального железа ядро ОС, а ядро ОС с обычными для себя барьерами между кольцами доступа запускает процессы и думает, что оно настоящее ядро настоящей ОС. Гипервизор при этом подменяет железо на виртуализированные ресурсы. Это прекрасная модель для изоляции, но требует заметных избыточных ресурсов (одной только RAM 0,5-1 ГБ). Контейнер же это chroot доведённый до абсолюта. Linux запускает процесс программы как обычно, но подменяет ему файловую систему, сеть, контекст пользователя и переменные окружения на свои собственные. То есть это не вся ОС, а один процесс (программа), которому кажется, что он один в ОС и кажется, что у него есть своя ОС. Но системные вызовы он делает в ядро хоста, события journalctl ловит служба хоста и так далее. Изоляция тут заметно менее строгая. Но и накладных расходов по сути нет. И нередко могут быть папки общие с основным хостом (например, конфигурация ТЖ или сам ТЖ или файловая БД) - файлы в них доступны одновременно и одинаково из хоста и контейнера.

При помощи контейнеров легко делать переносимые "кубики" серверных служб - собственно для этого их и придумали. С клиентскими GUI-приложениями всё почти-почти также, но чуть сложнее. Контейнер не имеет своего графического стека: окно рисует не он, а X-сервер хоста. Контейнеру достаточно (а) найти сервер и (б) иметь право с ним соединиться. Архитектура Linux такова, что (почти) все взаимодействия на низком уровне являются чтением и записью файла (или сокета, что тоже файл). В том числе и вывод на экран. Поэтому можно просто указать контейнеру (примонтировать в него) нужный сокет и передать информацию (cookie).

В общем, взял я кружку кофе, LLM недорогую, положил в папку дистрибутив 1С, описал задачу и сделал набор скриптов, которые позволяют собирать и запускать контейнер. Не с первого раза, не мгновенно (LLM недорогая же), с аккуратной проверкой белковым интеллектом - но всё получилось.

Проверил на 1С 8.3.27 и 8.5.1. Проверил на работе с файловыми БД и с сервером (я же говорил - у меня есть антикризисный сервер-мини, он тоже в контейнерах но это другая история). Проверил, что community-лицензия хранится в постоянных файлах и не теряется в контейнере. На этом базовом уровне всё работает.

 

 

Что сделано и где взять, как использовать

Сборщик выложен на github.

В корневом README.md - инструкция по использованию.

Плюс дополнительно в файле run.md можно прочитать подробнее, как это запускать, а в файле integration.md - как контейнер дружится с UI.

Лицензия предполагается, что есть на сервере, но работает и community (просто получаете новую или складываете lic с хоста).

Не уверен, что буду отвечать на issue, но разумные PR могу и влить.

Никаких гарантий качества нет, никаких ожиданий что оно всё само и сразу заработает быть не должно. Если что-то непонятно или не работает - спросите LLM, потом гугл. В крайнем случае - можно спросить меня в стиле "что имел в виду автор".

Удачи в изучении и использовании!

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Linux Системный администратор 1С:Предприятие 8 Бесплатно (free)

Скрипт bash для корректного обновления серверной части платформы 1С Предприятия (сохраняет и восстанавливает настройки служб, даже если их несколько, изменяет версию платформы во всех веб-публикациях и делает еще много полезных мелочей не включенных в штатный инсталлятор) Иными словами "обновление под ключ" или "нажал и забыл"

21.10.2026    360    capitan    0    

5

DevOps и автоматизация разработки Linux Разработчик 1С 8.3 Абонемент ($m)

Исследуем, почему COPY и последующий rm оставляют установщик в слоях Docker. На Docker Engine 29.8.0 сравнила три сборки с фиктивным дистрибутивом: bind mount и отдельный завершающий этап исключили его слой. В статье — первичные размеры и границы проверки лицензирования 1С; в архиве — воспроизводитель и анализатор inspect/history.

1 стартмани

12.10.2026    335    Ninel_S    0    

1

Linux Разработчик 1С 8.3 Россия Бесплатно (free)

Пошагово показываю, как на сервере 1С 8.3 под Linux получить PNG QR через HTTPСоединение без COM, сохранить ответ во временный файл или двоичные данные и вывести картинку на форме через временное хранилище. Разбираю замену XMLHTTP, кодирование текста, HTTPS и типичные ошибки «сервер недоступен».

06.10.2026    368    rusla95oreh    0    

1

Инструменты администратора БД Администрирование СУБД Linux Системный администратор Разработчик Руководитель проекта Стажер 1С 8.3 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Предприятие 8. Транспортная логистика, экспедирование и управление автотранспортом КОРП 1С:КА Беларусь Россия Казахстан Абонемент ($m)

Пятый выпуск нашего открытого инженерного сериала по построению отказоустойчивой инфраструктуры 1С на Linux! В этой части мы спускаемся на уровень операционной системы и выполняем обещание, данное в Roadmap предыдущей статьи - разбираем физику подсистемы виртуальной памяти Linux, ликвидируем скрытые I/O-тормоза и публикуем новый прикладной инструмент для системных администраторов и DBA.

10 стартмани

16.09.2026    1336    Ninel_S    0    

2

DevOps и автоматизация разработки Linux HighLoad оптимизация Групповая разработка (Git, хранилище) Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Беларусь Россия Казахстан Абонемент ($m)

Системный анализ архитектурных границ масштабирования учетных систем «1С:Предприятие 8.3» под управлением PostgreSQL в ОС Linux. Формулирование инженерной методологии сквозного проекта «Торговый контур», определение измеримых целевых показателей (p95, MTTR, APDEX) и стратегии поэтапной модернизации эксплуатационного контура без остановки промышленных учетных процессов.

1 стартмани

07.09.2026    1635    Ninel_S    10    

2

Linux Групповая разработка (Git, хранилище) Администрирование СУБД Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Декларативный pipeline в GitHub Actions, тонкости лицензирования в Docker (--net=host), изоляция RUN_ID и интеграция со сборочным конвейером SRE-Suite-for-1C-platform. Вторая часть практического руководства (https://infostart.ru/public/2779597): от первого коммита до детерминированного синтаксического гейта на headless-раннере Linux

1 стартмани

03.09.2026    2057    Ninel_S    0    

4

Linux Групповая разработка (Git, хранилище) Администрирование СУБД Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Пакетный запуск Конфигуратора 1С на Linux таит опасную ловушку: при критических ошибках утилита DESIGNER завершается с кодом возврата 0 - «всё хорошо». Дефект уходит на продуктив. Мы открываем проект SRE-Suite-for-1C-platform - набор специализированных инструментов для надёжной эксплуатации 1С на Linux: • пятислойный сборочный скрипт с защитой от False Success (BOM, кодировки, lock-файлы, diff с Git) • Мягкая ротация процессов "rphost" через RAS API без обрыва сеансов • EDT ; Конфигуратор: CLI-мост для CI/CD на Node.js • Готовые конфиги logcfg.xml и nethasp.ini для боевого сервера • systemd-шаблоны для фонового мониторинга кластера Проект в активной разработке, лицензия MIT. Ждём ваших тест-репортов и PR.

03.09.2026    2093    Ninel_S    0    

2
Для отправки сообщения требуется регистрация/авторизация