SCROLL
Среднее время на прочтение: 3 мин.

Запуск веб-сервера Apache с модулем 1C (webinst) в Docker контейнере на Debian

По работе появилась необходимость реализовать схему публикации баз данных 1C на веб-сервере Apache с использованием Docker, чтобы была возможность в рамках одного сервера публиковать базы данных с использованием различных версий платформы 1C.

JUQwJTlFJUQwJUJGJUQwJUI4JUQxJTg4JUQxJTgzJTIwJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQxJThGJTIwJUQxJTgwJUQwJUI1JUQwJUIwJUQwJUJCJUQwJUI4JUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJCJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJTgzJUQxJThFJTIwJUQxJTgxJUQxJTg1JUQwJUI1JUQwJUJDJUQxJTgzLiUyMCVEMCU5MiVEMSU4MSVEMCVCNSUyMCVEMCVCRCVEMCVCOCVEMCVCNiVEMCVCNSUyMCVEMCVCRSVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCMCVEMCVCRCVEMCVCRCVEMCVCRSVEMCVCNSUyMCVEMCVCMiVEMSU4QiVEMCVCRiVEMCVCRSVEMCVCQiVEMCVCRCVEMSU4RiVEMCVCQiVEMCVCRSVEMSU4MSVEMSU4QyUyMCVEMCVCRCVEMCVCMCUyMERlYmlhbiUyMDExJTIwJUQxJTgxJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JUQwJUJDJTIwRG9ja2VyJTIwJTJCJTIwQXBhY2hlLg==

Установка Docker

JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQxJThCJUQwJUI1JTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJUQxJThCJTIwJUQwJUI3JUQwJUIwJUQwJUIyJUQwJUI4JUQxJTgxJUQwJUI4JUQwJUJDJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI1JUQwJUI5Lg==

c3VkbyUyMGFwdC1nZXQlMjB1cGRhdGU=
sudo apt-get install ca-certificates curl

JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQwJUIwJTIwRG9ja2VyJTIwJUQxJTgxJUQxJTgzJUQwJUJGJUQwJUI1JUQxJTgwJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQxJThGJTJDJTIwJUQwJUIxJUQxJTgzJUQwJUJBJUQwJUIyJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJTIwJUQwJUIyJTIwJUQwJUI0JUQwJUIyJUQwJUI1JTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJThCLg==

curl -fsSL https://get.docker.com -o get-docker.sh  
sudo sh get-docker.sh

Для проверки что Docker успешно установился, можно запустив образ hello-world:

c3VkbyUyMGRvY2tlciUyMHJ1biUyMGhlbGxvLXdvcmxk

Установка 1C (модуль веб-сервера)

Скачать необходимую версию 1C можно с оф. сайта — https://releases.1c.ru/total

Описывать подробно установку 1C с модулем веб-сервера не вижу смысла, там все достаточно тривиально. С оф. сайта скачиваете дистрибутив для Linux, в моем случае это либо deb пакет, либо run файл и выполняете установку.

KiolMjAlRDAlQjUlRDElODElRDAlQkIlRDAlQjglMjAlRDElODMlMjAlRDAlQkElRDAlQkUlRDAlQjMlRDAlQkUlMjAlRDAlQkIlRDAlQjglRDAlQjElRDAlQkUlMjAlRDElODElRDAlQkIlRDAlQkUlRDAlQjYlRDAlQkQlRDAlQkUlRDElODElRDElODIlRDAlQjglMjAlRDElODElMjAlRDElODMlRDElODElRDElODIlRDAlQjAlRDAlQkQlRDAlQkUlRDAlQjIlRDAlQkElRDAlQkUlRDAlQjklMjAxJUQwJUExJTIwJUQwJUIyJTIwTGludXglMkMlMjAlRDElODIlRDAlQkUlMjAlRDAlQkQlRDAlQjAlRDAlQkYlRDAlQjglRDElODglRDAlQjglMjAlRDAlQkUlRDAlQjElMjAlRDElOEQlRDElODIlRDAlQkUlRDAlQkMlMjAlRDAlQjIlMjAlRDAlQkElRDAlQkUlRDAlQkMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlRDAlQjAlRDElODAlRDAlQjglRDElOEYlRDElODUlMkMlMjAlRDElOEYlMjAlRDAlQkUlRDAlQkYlRDAlQjglRDElODglRDElODMlMjAlRDAlQkYlRDElODAlRDAlQkUlRDElODYlRDAlQjUlRDElODElRDElODElMjAlRDElODMlRDElODElRDElODIlRDAlQjAlRDAlQkQlRDAlQkUlRDAlQjIlRDAlQkElRDAlQjglMjAlRDAlQkYlRDAlQkUlRDElODglRDAlQjAlRDAlQjMlRDAlQkUlRDAlQjIlRDAlQkUu

JUQwJTkyJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JTIwJUQwJUI1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJEJUQxJTgzJUQwJUI2JUQwJUJEJUQwJUIwJTIwJUQwJUJCJUQwJUI4JUQxJTg4JUQxJThDJTIwJUQwJUIyJUQwJUI1JUQwJUIxJTIwJUQwJUJGJUQxJTgzJUQwJUIxJUQwJUJCJUQwJUI4JUQwJUJBJUQwJUIwJUQxJTg2JUQwJUI4JUQxJThGJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgyJUQwJUJFJUQxJTg3JUQwJUJEJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUI4JUQxJTgyJUQxJThDJTIwY29tbW9uJTIwJTJCJTIwc2VydmVyJTIwJTJCJTIwd3MlMjBkZWIlMjAlRDAlQkYlRDAlQjAlRDAlQkElRDAlQjUlRDElODIlRDElOEIlMkMlMjAlRDAlQkIlRDAlQjglRDAlQjElRDAlQkUlMjAlRDAlQjIlMjAlRDElODElRDAlQkIlRDElODMlRDElODclRDAlQjAlRDAlQjUlMjAlRDAlQjIlRDElOEIlRDAlQkYlRDAlQkUlRDAlQkIlRDAlQkQlRDAlQjUlRDAlQkQlRDAlQjglRDAlQjglMjBydW4lMjAlRDElODElRDAlQkElRDElODAlRDAlQjglRDAlQkYlRDElODIlRDAlQjAlMkMlMjAlRDElODIlRDAlQkUlMjAlRDElODMlRDElODElRDElODIlRDAlQjAlRDAlQkQlRDAlQjAlRDAlQjIlRDAlQkIlRDAlQjglRDAlQjIlRDAlQjAlRDAlQjUlRDAlQkMlMjAlRDElODIlRDAlQkUlRDAlQkIlRDElOEMlRDAlQkElRDAlQkUlMjAlRDAlQkMlRDAlQkUlRDAlQjQlRDElODMlRDAlQkIlRDElOEMlMjAlRDAlQjIlRDAlQjUlRDAlQjEtJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUIwLiUyMCVEMCU5RiVEMSU4MCVEMCVCOCVEMCVCQiVEMCVCRSVEMCVCNiVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNSUyMDFDJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUIyJTIwJTJGb3B0JTJGMWN2OCUyQyUyMCVEMSU4MSUyMCVEMCVCRCVEMCVCOCVEMCVCQyUyMCVEMCVCOCUyMCVEMCVCMSVEMSU4MyVEMCVCNCVEMCVCNSVEMCVCQyUyMCVEMCVCMiUyMCVEMCVCNCVEMCVCMCVEMCVCQiVEMSU4QyVEMCVCRCVEMCVCNSVEMCVCOSVEMSU4OCVEMCVCNSVEMCVCQyUyMCVEMSU4MCVEMCVCMCVEMCVCMSVEMCVCRSVEMSU4MiVEMCVCMCVEMSU4MiVEMSU4Qy4=

Настройка Docker контейнера

Описание структуры

JUQwJTkyJUQwJUJFJUQxJTgyJTIwJUQxJTgyJUQwJUIwJUQwJUJBJUQwJUIwJUQxJThGJTIwJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJBJUQxJTgyJUQxJTgzJUQxJTgwJUQwJUIwJTIwJUQxJTgzJTIwJUQwJUJDJUQwJUI1JUQwJUJEJUQxJThGJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUI4JUQwJUJCJUQwJUIwJUQxJTgxJUQxJThDLiUyMCVEMCU5RiVEMCVCRSVEMSU4RiVEMSU4MSVEMCVCRCVEMCVCNSVEMCVCRCVEMCVCOCVEMSU4RiUyMCVEMCVCRiVEMCVCRSUyMCVEMSU4MSVEMSU4MiVEMSU4MCVEMSU4MyVEMCVCQSVEMSU4MiVEMSU4MyVEMSU4MCVEMCVCNSUyMCVEMCVCRCVEMCVCOCVEMCVCNiVEMCVCNS4=

ZG9ja2VyJTJG
└── apache-1c
JTIwJTIwJTIwJTIwJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwY29uZg==
    │   ├── 8.3.23.1865.conf
    │   └── 8.3.24.1548.conf
JTIwJTIwJTIwJTIwJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwZG9ja2VyLWNvbXBvc2UueW1s
JTIwJTIwJTIwJTIwJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwZG9ja2VyZmlsZQ==
JTIwJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwd3d3
        ├── 8.3.23.1865
        │   └── test_database1
        │       └── default.vrd
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwOC4zLjI0LjE1NDg=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwdGVzdF9kYXRhYmFzZTI=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwZGVmYXVsdC52cmQ=
  • Каталог conf — расположение файлов конфигурации виртуальных хостов Apache. Для удобства файлы конфигурации именуем номером версии 1C под которую будет запускаться инстанс Apache.
  • Каталог www — расположение файлов default.vrd. Так же как и для файлов Apache, для удобства публикуемые базы данных помешаем в каталоги с номером версии 1C под которой эти базы работают.
  • Файл dockerfile — описание создания образа Docker.
  • Файл docker-compose.yml — описание запуска сервисов, для каждого инстанс Apache и версию 1C.

Создание структуры, публикация базы данных 1С

В примере ниже я буду описывать с учетом что у меня установлена версия 1C — 8.3.24.1548

Создаем структуру каталогов Docker контейнера.

bWtkaXIlMjAtcCUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRiU3QmNvbmYlMkN3d3clN0Q=
bWtkaXIlMjAtcCUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRnd3dyUyRjguMy4yNC4xNTQ4
Вместо 8.3.24.1548 указываем вашу версию 1C. Если версий 1С предполагается несколько, то создаем каталоги под каждую версию.

Создаем файл конфигурации /opt/docker/apache-1c/conf/8.3.24.1548.conf Apache под версию 1C, если предполагается использование нескольких версий 1C, то создаем под каждую версию файл конфигурации.

/opt/docker/apache-1c/conf/8.3.24.1548.conf
<VirtualHost *:80>
    ServerName contoso.com
    DocumentRoot /var/www

JTIwJTIwJTIwJTIwTG9nTGV2ZWwlMjB3YXJu
JTIwJTIwJTIwJTIwRXJyb3JMb2clMjAlMkZ2YXIlMkZsb2clMkZhcGFjaGUyJTJGZG9ja2VyLmVycm9yLmxvZw==
    CustomLog /var/log/apache2/docker.access.log combined
</VirtualHost>
В ServerName указываем свое используемое DNS имя.

Создаем /opt/docker/apache-1c/dockerfile с содержимым.

/opt/docker/apache-1c/dockerfile
RlJPTSUyMGRlYmlhbiUzQWJ1bGxzZXll

RUN apt-get update && apt-get install -y apache2 vim-tiny

CMD ["apachectl", "-D", "FOREGROUND"]

Создаем /opt/docker/apache-1c/docker-compose.yml с содержимым.

/opt/docker/apache-1c/docker-compose.yml
services:
JTIwJTIwYXBhY2hlXzguMy4yNC4xNTQ4JTNB
JTIwJTIwJTIwJTIwYnVpbGQlM0E=
      context: .
      dockerfile: dockerfile
    restart: always  
JTIwJTIwJTIwJTIwdm9sdW1lcyUzQQ==
      - /opt/docker/apache-1c/conf/8.3.24.1548.conf:/etc/apache2/sites-available/000-default.conf
      - /opt/docker/apache-1c/www/8.3.24.1548:/var/www
      - /opt/1cv8/x86_64/8.3.24.1548:/opt/1cv8/x86_64/8.3.24.1548
JTIwJTIwJTIwJTIwcG9ydHMlM0E=
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyMjgwODElM0E4MCUyMg==

Описание по строкам:

  • 2 — понятное название сервиса.
  • 8-10 — описание монтирование каталогов в запускаемый docker-контейнер.
  • 12 — маппинг портов host - container.

Если предполагается использование нескольких версий 1С, то описание нескольких сервисов будет выглядеть так.

/opt/docker/apache-1c/docker-compose.yml
c2VydmljZXMlM0E=
JTIwJTIwYXBhY2hlXzguMy4yMy4xODY1JTNB
    build:
      context: .
      dockerfile: dockerfile
JTIwJTIwJTIwJTIwcmVzdGFydCUzQSUyMGFsd2F5cyUyMCUyMA==
    volumes:
      - /opt/docker/apache-1c/conf/8.3.23.1865.conf:/etc/apache2/sites-available/000-default.conf
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRnd3dyUyRjguMy4yMy4xODY1JTNBJTJGdmFyJTJGd3d3
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRjFjdjglMkZ4ODZfNjQlMkY4LjMuMjMuMTg2NSUzQSUyRm9wdCUyRjFjdjglMkZ4ODZfNjQlMkY4LjMuMjMuMTg2NQ==
    ports:
      - "8081:80"
      
  apache_8.3.24.1548:
JTIwJTIwJTIwJTIwYnVpbGQlM0E=
JTIwJTIwJTIwJTIwJTIwJTIwY29udGV4dCUzQSUyMC4=
      dockerfile: dockerfile
JTIwJTIwJTIwJTIwcmVzdGFydCUzQSUyMGFsd2F5cyUyMCUyMA==
    volumes:
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRmNvbmYlMkY4LjMuMjQuMTU0OC5jb25mJTNBJTJGZXRjJTJGYXBhY2hlMiUyRnNpdGVzLWF2YWlsYWJsZSUyRjAwMC1kZWZhdWx0LmNvbmY=
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRnd3dyUyRjguMy4yNC4xNTQ4JTNBJTJGdmFyJTJGd3d3
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRjFjdjglMkZ4ODZfNjQlMkY4LjMuMjQuMTU0OCUzQSUyRm9wdCUyRjFjdjglMkZ4ODZfNjQlMkY4LjMuMjQuMTU0OA==
JTIwJTIwJTIwJTIwcG9ydHMlM0E=
      - "8082:80"
Важно помнить что при использовании нескольких сервисов нужно учитывать что на одном порту может работать только один docker-контейнер, поэтому нужно выполнять меппинг портов как показано в примере.

JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJTIwJUQxJTgxJTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgzJUQwJUIxJUQwJUJCJUQwJUI4JUQwJUJBJUQxJTgzJUQwJUI1JUQwJUJDJUQwJUJFJUQwJUI5JTIwJUQwJUIxJUQwJUIwJUQwJUI3JUQxJThCJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQwJUI4JUQwJUJCJUQwJUI4JTIwJUQwJUJCJUQxJThFJUQwJUIxJUQxJThCJUQwJUJDJTIwJUQxJTgzJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUJEJUQxJThCJUQwJUJDJTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJDJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUJDJUQwJUI1JUQxJTg5JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUIyJTIwJUQwJUJEJUQwJUI1JUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUIwJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI1JUQwJUJBJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwMUMlMjAlRTIlODAlOTQlMjBkZWZhdWx0LnZyZC4lMjAlRDAlOUElMjAlRDAlQkYlRDElODAlRDAlQjglRDAlQkMlRDAlQjUlRDElODAlRDElODMlMjAlRDAlQkUlRDAlQkYlRDElODMlRDAlQjElRDAlQkIlRDAlQjglRDAlQkElRDAlQkUlRDAlQjIlRDElOEIlRDAlQjIlRDAlQjAlRDElODIlRDElOEMlMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDAlQkMlMjAlRDAlQjElRDAlQjAlRDAlQjclRDElODMlMjAlRTIlODAlOTQlMjB0ZXN0X2RhdGFiYXNlMiUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMCVCMiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMCVCOCUyMDElRDAlQTElMjA4LjMuMjQuMTU0OC4=

bWtkaXIlMjAtcCUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRnd3dyUyRjguMy4yNC4xNTQ4JTJGdGVzdF9kYXRhYmFzZTI=
dG91Y2glMjAlMkZvcHQlMkZkb2NrZXIlMkZhcGFjaGUtMWMlMkZ3d3clMkY4LjMuMjQuMTU0OCUyRnRlc3RfZGF0YWJhc2UyJTJGZGVmYXVsdC52cmQ=

В файле default.vrd прописываем базовые параметры.

JTNDJTNGeG1sJTIwdmVyc2lvbiUzRCUyMjEuMCUyMiUyMGVuY29kaW5nJTNEJTIyVVRGLTglMjIlM0YlM0U=
JTNDcG9pbnQlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ2OC4xYy5ydSUyRjguMiUyRnZpcnR1YWwtcmVzb3VyY2Utc3lzdGVtJTIy
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                base="/test_database2"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWIlM0QlMjJTcnZyJTNEJTNDU0VSVkVSX05BTUUlM0UlM0JSZWYlM0R0ZXN0X2RhdGFiYXNlMiUzQiUyMiUzRQ==
        <ws pointEnableCommon="true"/>
        <standardOdata enable="false"
                        reuseSessions="autouse"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2Vzc2lvbk1heEFnZSUzRCUyMjIwJTIy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcG9vbFNpemUlM0QlMjIxMCUyMg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcG9vbFRpbWVvdXQlM0QlMjI1JTIyJTJGJTNF
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDYW5hbHl0aWNzJTIwZW5hYmxlJTNEJTIydHJ1ZSUyMiUyRiUzRQ==
JTNDJTJGcG9pbnQlM0U=
Обращаю внимание что в отмеченных полях указываем свои данные!

В файле конфигурации виртуального хоста apache — /opt/docker/apache-1c/conf/8.3.24.1548.conf и добавим в конец.

TG9hZE1vZHVsZSUyMF8xY3dzX21vZHVsZSUyMCUyMiUyRm9wdCUyRjFjdjglMkZ4ODZfNjQlMkY4LjMuMjQuMTU0OCUyRndzYXAyNC5zbyUyMg==

# 1c publication
Alias "/test_database2" "/var/www/test_database2/"
JTNDRGlyZWN0b3J5JTIwJTIyJTJGdmFyJTJGd3d3JTJGdGVzdF9kYXRhYmFzZTIlMkYlMjIlM0U=
    AllowOverride All
    Options None
    Require all granted
JTIwJTIwJTIwJTIwU2V0SGFuZGxlciUyMDFjLWFwcGxpY2F0aW9u
    ManagedApplicationDescriptor "/var/www/test_database2/default.vrd"
</Directory>
Где test_database2 это имя опубликованной базы данных.

На этом подготовка Docker контейнера закончена, можно переходить к его запуску. Переходим в каталог Docker контейнера — /opt/docker/apache-1c/, собираем Docker контейнер и запускаем его, командой.

ZG9ja2VyJTIwY29tcG9zZSUyMHVwJTIwLWQlMjAtLWJ1aWxk

JUQwJTk1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUIyJTIwJUQwJUIyJUQxJThCJUQwJUIyJUQwJUJFJUQwJUI0JUQwJUI1JTIwJUQwJUIyJUQwJUI4JUQwJUI0JUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQwJUJEJUQwJUI1JUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUJEJUQwJUJFJUQwJUI1JTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUI4JUQxJTgyJTIwRG9ja2VyJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTgyJUQwJUI1JUQwJUI5JUQwJUJEJUQwJUI1JUQxJTgwJTIwJUQxJTgzJUQxJTgxJUQwJUJGJUQwJUI1JUQxJTg4JUQwJUJEJUQwJUJFJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUI4JUQwJUJCJUQxJTgxJUQxJThGLg==

[+] Building 473.9s (8/8) FINISHED
Li4u
JTVCJTJCJTVEJTIwUnVubmluZyUyMDIlMkYy
JTIwJUUyJTlDJTk0JTIwTmV0d29yayUyMGFwYWNoZS0xY19kZWZhdWx0JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwQ3JlYXRlZA==
JTIwJUUyJTlDJTk0JTIwQ29udGFpbmVyJTIwYXBhY2hlLTFjLWFwYWNoZV84LjMuMjQuMTU0OC0xJTIwJTIwU3RhcnRlZA==

Опубликованная база данных 1C будет доступна по указанному в конфигурации виртуального хоста адресу, в моем случае это http://contoso.com:8180/test_database2

Управление Docker Compose

JUQwJTlFJUQxJTgxJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJThCJTIwJUQxJTgzJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwRG9ja2VyJTIwQ29tcG9zZSUyQyUyMCVEMSU4NyVEMSU4MiVEMCVCRSVEMCVCMSVEMSU4QiUyMCVEMCVCMSVEMSU4QiVEMCVCQiVEMCVCRSUyMCVEMCVCRiVEMCVCRSVEMCVCRCVEMCVCOCVEMCVCQyVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMCVCQSVEMCVCMCVEMCVCQSUyMCVEMCVCOCVEMCVCQyUyMCVEMSU4MyVEMCVCRiVEMSU4MCVEMCVCMCVEMCVCMiVEMCVCQiVEMSU4RiVEMSU4MiVEMSU4Qy4=

  • docker compose up — запускает приложение со всеми контейнеры, информация о которых есть в docker-compose.yml. Если файл не указан, по умолчанию используется файл в текущем каталоге;
  • docker compose down — останавливает и удаляет все контейнеры, а также тома, связанные с ними;
  • docker compose start — запускает остановленные контейнеры;
  • docker compose stop — останавливает работу запущенных контейнеров без их удаления;
  • docker compose restart — перезапускает контейнеры;
  • docker compose build — позволяет обновить образы или создать их заново, если они были изменены;
  • docker compose logs — выводит журналы состояния;
  • docker compose ps — отображает текущее состояние контейнеров;
  • docker compose pull — загружает последние версии образов для сервисов, описанных в файле docker-compose.yml.

JUQwJTkyJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JTIwJUQwJUI1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUIyJUQxJThCJTIwJUQwJUIyJUQwJUJEJUQwJUI1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJBJUQwJUIwJUQwJUJBJUQwJUI4JUQwJUI1JTIwJUQxJTgyJUQwJUJFJTIwJUQwJUI4JUQwJUI3JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUIyJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTIwJUQwJUJFJUQxJTgyJUQwJUJEJUQwJUJFJUQxJTgxJUQxJThGJUQxJTg5JUQwJUI4JUQwJUI1JUQxJTgxJUQxJThGJTIwJUQwJUJBJTIwRG9ja2VyJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTgyJUQwJUI1JUQwJUI5JUQwJUJEJUQwJUI1JUQxJTgwJUQxJTgzJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI0JTIwJUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJDJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQxJTgxJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIwJUQxJTgyJUQxJThDJTIwYnVpbGQu

Резюме

JUQwJTlGJUQwJUJFJTIwJUQwJUI4JUQxJTgyJUQwJUJFJUQwJUIzJUQxJTgzJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUJGJUQwJUJCJUQxJThFJUQxJTgxJTVDJUQwJUJDJUQwJUI4JUQwJUJEJUQxJTgzJUQxJTgxJTIwJUQxJTgzJUQwJUJEJUQwJUI4JUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUIwJUQxJThGJTIwJUQxJTgxJUQxJTg1JUQwJUI1JUQwJUJDJUQwJUIwJTIwJUQwJUJGJUQxJTgzJUQwJUIxJUQwJUJCJUQwJUI4JUQwJUJBJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQwJUIxJUQwJUIwJUQwJUI3JTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwMUMlMjAlRDAlQkQlRDAlQjAlMjAlRDAlQjIlRDAlQjUlRDAlQjEtJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI1JTIwYXBhY2hlLiUyMCVEMCU5RiVEMCVCQiVEMSU4RSVEMSU4MSVEMCVCRSVEMCVCQyUyMCVEMSU4MSVEMSU4NyVEMCVCOCVEMSU4MiVEMCVCMCVEMSU4RSUyMCVEMSU4MiVEMCVCRSUyMCVEMSU4NyVEMSU4MiVEMCVCRSUyMCVEMCVCMiUyMCVEMSU4MCVEMCVCMCVEMCVCQyVEMCVCQSVEMCVCMCVEMSU4NSUyMCVEMCVCRSVEMCVCNCVEMCVCRCVEMCVCRSVEMCVCMyVEMCVCRSUyMCVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCMCUyMCVEMCVCQyVEMCVCRSVEMCVCNiVEMCVCRCVEMCVCRSUyMCVEMCVCRiVEMSU4MyVEMCVCMSVEMCVCQiVEMCVCOCVEMCVCQSVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMSU4QyUyMCVEMCVCMSVEMCVCMCVEMCVCNyVEMSU4QiUyMCVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCRCVEMSU4QiVEMSU4NSUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMSU4MCVEMCVCMCVEMCVCNyVEMCVCQiVEMCVCOCVEMSU4NyVEMCVCRCVEMSU4QiVEMSU4NSUyMCVEMCVCRiVEMCVCQiVEMCVCMCVEMSU4MiVEMSU4NCVEMCVCRSVEMSU4MCVEMCVCQyUyMDElRDAlQTEuJTIwJUQwJTk4JUQwJUI3JTIwJUQwJUJDJUQwJUI4JUQwJUJEJUQxJTgzJUQxJTgxJUQwJUJFJUQwJUIyJTJDJTIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJEJUQwJUJFJUQwJUI1JTIwJUQxJTgyJUQwJUJFJTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUJFJUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUIwJUQxJThGJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUIzJUQwJUJFJUQxJTgyJUQwJUJFJUQwJUIyJUQwJUJBJUQwJUIwJTIwJUQwJUJBJTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQwJUI1JTIwJUQwJUI3JUQwJUIwJUQwJUI5JUQwJUJDJUQwJUI1JUQxJTgyJTIwJUQwJUJBJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUI1JTIwJUQxJTgyJUQwJUJFJTIwJUQwJUIyJUQxJTgwJUQwJUI1JUQwJUJDJUQxJThGJTJDJTIwJUQwJUJEJUQxJTgzJTIwJUQwJUI4JTIwJUQwJUJGJUQxJTgzJUQwJUIxJUQwJUJCJUQwJUI4JUQwJUJBJUQwJUIwJUQxJTg2JUQwJUI4JUQxJThGJTIwJUQxJTgxJUQwJUIwJUQwJUJDJUQwJUI4JUQxJTg1JTIwJUQwJUIxJUQwJUIwJUQwJUI3JTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUIyJTIwJUQxJTgwJUQxJTgzJUQxJTg3JUQwJUJEJUQwJUJFJUQwJUJDJTIwJUQxJTgwJUQwJUI1JUQwJUI2JUQwJUI4JUQwJUJDJUQwJUI1JTJDJTIwJUQwJUIyJTIwJUQwJUJFJUQxJTgyJUQwJUJCJUQwJUI4JUQxJTg3JUQwJUI4JUQwJUI1JTIwJUQwJUJFJUQxJTgyJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI4JTIwJUQxJTgzJUQxJTgyJUQwJUI4JUQwJUJCJUQwJUI4JUQxJTgyJUQxJThCJTIwd2ViaW5zdC4=

Если у кого какие замечания и предложения по статье, прошу в комментарии, дельные советы отразим в статье.

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

Ответ на комментарий МарияОтмена ответа
7 комментариев
  • непонятно, какие права давать. Нет доступа к папке /var/1CBases — у меня там базы лежат.

    • Это ответ на комментарий Василь

      не понятно на что права, причем тут /var/1CBases тоже не понятно, если сами базы никак не фигурируют в веб публикации.

  • Тут надо уточнить, что docker установлен из snap.

    • Это ответ на комментарий Василь

      Удалите docker из snap и установите его так — Установка Docker и будет все нормально.
      Если docker почему то должен быть установлен только через snap, то используйте каталоги которые доступные snap, потому как snap ограничивает доступ к /opt. Вместо этого /opt можно использовать домашний каталог или /var/snap.
      Но я бы лучше установил docker не через snap, лично не использую его никогда.

  • Error response from daemon: error while creating mount source path ‘/opt/1cv8/x86_64/8.3.25.1445’: mkdir /opt/1cv8: read-only file system

  • Здравствуйте, подскажите, как быть с файловыми базами?

    • Это ответ на комментарий Мария

      А что с ними? В публикации default.vdr там же описывается подключение к серверу 1с и базе данных которая находится в кластере. В рамках данной задачи я не совсем понимаю вопроса.