Запуск веб-сервера Apache с модулем 1C (webinst) в Docker контейнере на Debian
По работе появилась необходимость реализовать схему публикации баз данных 1C на веб-сервере Apache с использованием Docker, чтобы была возможность в рамках одного сервера публиковать базы данных с использованием различных версий платформы 1C.
Опишу как я реализовал данную схему. Все ниже описанное выполнялось на Debian 11 с использованием Docker + Apache.
Установка Docker
Устанавливаем необходимые пакеты зависимостей.
sudo apt-get update
sudo apt-get install ca-certificates curl
JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQwJUIwJTIwRG9ja2VyJTIwJUQxJTgxJUQxJTgzJUQwJUJGJUQwJUI1JUQxJTgwJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQxJThGJTJDJTIwJUQwJUIxJUQxJTgzJUQwJUJBJUQwJUIyJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJTIwJUQwJUIyJTIwJUQwJUI0JUQwJUIyJUQwJUI1JTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJThCLg==
Y3VybCUyMC1mc1NMJTIwaHR0cHMlM0ElMkYlMkZnZXQuZG9ja2VyLmNvbSUyMC1vJTIwZ2V0LWRvY2tlci5zaCUyMCUyMA==
sudo sh get-docker.sh
Для проверки что Docker успешно установился, можно запустив образ hello-world:
c3VkbyUyMGRvY2tlciUyMHJ1biUyMGhlbGxvLXdvcmxk
Установка 1C (модуль веб-сервера)
Описывать подробно установку 1C с модулем веб-сервера не вижу смысла, там все достаточно тривиально. С оф. сайта скачиваете дистрибутив для Linux, в моем случае это либо deb пакет, либо run файл и выполняете установку.
** если у кого либо сложности с установкой 1С в Linux, то напиши об этом в комментариях, я опишу процесс установки пошагово.
JUQwJTkyJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JTIwJUQwJUI1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJEJUQxJTgzJUQwJUI2JUQwJUJEJUQwJUIwJTIwJUQwJUJCJUQwJUI4JUQxJTg4JUQxJThDJTIwJUQwJUIyJUQwJUI1JUQwJUIxJTIwJUQwJUJGJUQxJTgzJUQwJUIxJUQwJUJCJUQwJUI4JUQwJUJBJUQwJUIwJUQxJTg2JUQwJUI4JUQxJThGJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgyJUQwJUJFJUQxJTg3JUQwJUJEJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUI4JUQxJTgyJUQxJThDJTIwY29tbW9uJTIwJTJCJTIwc2VydmVyJTIwJTJCJTIwd3MlMjBkZWIlMjAlRDAlQkYlRDAlQjAlRDAlQkElRDAlQjUlRDElODIlRDElOEIlMkMlMjAlRDAlQkIlRDAlQjglRDAlQjElRDAlQkUlMjAlRDAlQjIlMjAlRDElODElRDAlQkIlRDElODMlRDElODclRDAlQjAlRDAlQjUlMjAlRDAlQjIlRDElOEIlRDAlQkYlRDAlQkUlRDAlQkIlRDAlQkQlRDAlQjUlRDAlQkQlRDAlQjglRDAlQjglMjBydW4lMjAlRDElODElRDAlQkElRDElODAlRDAlQjglRDAlQkYlRDElODIlRDAlQjAlMkMlMjAlRDElODIlRDAlQkUlMjAlRDElODMlRDElODElRDElODIlRDAlQjAlRDAlQkQlRDAlQjAlRDAlQjIlRDAlQkIlRDAlQjglRDAlQjIlRDAlQjAlRDAlQjUlRDAlQkMlMjAlRDElODIlRDAlQkUlRDAlQkIlRDElOEMlRDAlQkElRDAlQkUlMjAlRDAlQkMlRDAlQkUlRDAlQjQlRDElODMlRDAlQkIlRDElOEMlMjAlRDAlQjIlRDAlQjUlRDAlQjEtJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUIwLiUyMCVEMCU5RiVEMSU4MCVEMCVCOCVEMCVCQiVEMCVCRSVEMCVCNiVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNSUyMDFDJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUIyJTIwJTJGb3B0JTJGMWN2OCUyQyUyMCVEMSU4MSUyMCVEMCVCRCVEMCVCOCVEMCVCQyUyMCVEMCVCOCUyMCVEMCVCMSVEMSU4MyVEMCVCNCVEMCVCNSVEMCVCQyUyMCVEMCVCMiUyMCVEMCVCNCVEMCVCMCVEMCVCQiVEMSU4QyVEMCVCRCVEMCVCNSVEMCVCOSVEMSU4OCVEMCVCNSVEMCVCQyUyMCVEMSU4MCVEMCVCMCVEMCVCMSVEMCVCRSVEMSU4MiVEMCVCMCVEMSU4MiVEMSU4Qy4=
Настройка Docker контейнера
Описание структуры
Вот такая структура у меня получилась. Пояснения по структуре ниже.
Каталог 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С предполагается несколько, то создаем каталоги под каждую версию.JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJTJGb3B0JTJGZG9ja2VyJTJGYXBhY2hlLTFjJTJGY29uZiUyRjguMy4yNC4xNTQ4LmNvbmYlMjBBcGFjaGUlMjAlRDAlQkYlRDAlQkUlRDAlQjQlMjAlRDAlQjIlRDAlQjUlRDElODAlRDElODElRDAlQjglRDElOEUlMjAxQyUyQyUyMCVEMCVCNSVEMSU4MSVEMCVCQiVEMCVCOCUyMCVEMCVCRiVEMSU4MCVEMCVCNSVEMCVCNCVEMCVCRiVEMCVCRSVEMCVCQiVEMCVCMCVEMCVCMyVEMCVCMCVEMCVCNSVEMSU4MiVEMSU4MSVEMSU4RiUyMCVEMCVCOCVEMSU4MSVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMCVCRSVEMCVCMiVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMCVCRCVEMCVCNSVEMSU4MSVEMCVCQSVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCQSVEMCVCOCVEMSU4NSUyMCVEMCVCMiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMCVCOSUyMDFDJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUJFJUQwJUI0JTIwJUQwJUJBJUQwJUIwJUQwJUI2JUQwJUI0JUQxJTgzJUQxJThFJTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQxJThFJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4Lg==
<VirtualHost *:80>
JTIwJTIwJTIwJTIwU2VydmVyTmFtZSUyMGNvbnRvc28uY29t
DocumentRoot /var/www
JTIwJTIwJTIwJTIwTG9nTGV2ZWwlMjB3YXJu
ErrorLog /var/log/apache2/docker.error.log
JTIwJTIwJTIwJTIwQ3VzdG9tTG9nJTIwJTJGdmFyJTJGbG9nJTJGYXBhY2hlMiUyRmRvY2tlci5hY2Nlc3MubG9nJTIwY29tYmluZWQ=
</VirtualHost>
ServerName
указываем свое используемое DNS имя.JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJTJGb3B0JTJGZG9ja2VyJTJGYXBhY2hlLTFjJTJGZG9ja2VyZmlsZSUyMCVEMSU4MSUyMCVEMSU4MSVEMCVCRSVEMCVCNCVEMCVCNSVEMSU4MCVEMCVCNiVEMCVCOCVEMCVCQyVEMSU4QiVEMCVCQy4=
RlJPTSUyMGRlYmlhbiUzQWJ1bGxzZXll
UlVOJTIwYXB0LWdldCUyMHVwZGF0ZSUyMCUyNiUyNiUyMGFwdC1nZXQlMjBpbnN0YWxsJTIwLXklMjBhcGFjaGUyJTIwdmltLXRpbnk=
Q01EJTIwJTVCJTIyYXBhY2hlY3RsJTIyJTJDJTIwJTIyLUQlMjIlMkMlMjAlMjJGT1JFR1JPVU5EJTIyJTVE
Создаем /opt/docker/apache-1c/docker-compose.yml
с содержимым.
services:
JTIwJTIwYXBhY2hlXzguMy4yNC4xNTQ4JTNB
JTIwJTIwJTIwJTIwYnVpbGQlM0E=
JTIwJTIwJTIwJTIwJTIwJTIwY29udGV4dCUzQSUyMC4=
dockerfile: dockerfile
JTIwJTIwJTIwJTIwcmVzdGFydCUzQSUyMGFsd2F5cyUyMCUyMA==
volumes:
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRmNvbmYlMkY4LjMuMjQuMTU0OC5jb25mJTNBJTJGZXRjJTJGYXBhY2hlMiUyRnNpdGVzLWF2YWlsYWJsZSUyRjAwMC1kZWZhdWx0LmNvbmY=
- /opt/docker/apache-1c/www/8.3.24.1548:/var/www
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRjFjdjglMkZ4ODZfNjQlMkY4LjMuMjQuMTU0OCUzQSUyRm9wdCUyRjFjdjglMkZ4ODZfNjQlMkY4LjMuMjQuMTU0OA==
ports:
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyMjgwODElM0E4MCUyMg==
Описание по строкам:
2
— понятное название сервиса.8-10
— описание монтирование каталогов в запускаемый docker-контейнер.12
— маппинг портовhost - container
.
JUQwJTk1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUJGJUQwJUJFJUQwJUJCJUQwJUIwJUQwJUIzJUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUJEJUQwJUI1JUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJCJUQxJThDJUQwJUJBJUQwJUI4JUQxJTg1JTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI5JTIwMSVEMCVBMSUyQyUyMCVEMSU4MiVEMCVCRSUyMCVEMCVCRSVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMCVCRCVEMCVCNSVEMSU4MSVEMCVCQSVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCQSVEMCVCOCVEMSU4NSUyMCVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCOCVEMSU4MSVEMCVCRSVEMCVCMiUyMCVEMCVCMSVEMSU4MyVEMCVCNCVEMCVCNSVEMSU4MiUyMCVEMCVCMiVEMSU4QiVEMCVCMyVEMCVCQiVEMSU4RiVEMCVCNCVEMCVCNSVEMSU4MiVEMSU4QyUyMCVEMSU4MiVEMCVCMCVEMCVCQS4=
services:
apache_8.3.23.1865:
build:
context: .
JTIwJTIwJTIwJTIwJTIwJTIwZG9ja2VyZmlsZSUzQSUyMGRvY2tlcmZpbGU=
restart: always
volumes:
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRmNvbmYlMkY4LjMuMjMuMTg2NS5jb25mJTNBJTJGZXRjJTJGYXBhY2hlMiUyRnNpdGVzLWF2YWlsYWJsZSUyRjAwMC1kZWZhdWx0LmNvbmY=
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRnd3dyUyRjguMy4yMy4xODY1JTNBJTJGdmFyJTJGd3d3
- /opt/1cv8/x86_64/8.3.23.1865:/opt/1cv8/x86_64/8.3.23.1865
JTIwJTIwJTIwJTIwcG9ydHMlM0E=
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyMjgwODElM0E4MCUyMg==
JTIwJTIwYXBhY2hlXzguMy4yNC4xNTQ4JTNB
build:
JTIwJTIwJTIwJTIwJTIwJTIwY29udGV4dCUzQSUyMC4=
JTIwJTIwJTIwJTIwJTIwJTIwZG9ja2VyZmlsZSUzQSUyMGRvY2tlcmZpbGU=
JTIwJTIwJTIwJTIwcmVzdGFydCUzQSUyMGFsd2F5cyUyMCUyMA==
volumes:
- /opt/docker/apache-1c/conf/8.3.24.1548.conf:/etc/apache2/sites-available/000-default.conf
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyRm9wdCUyRmRvY2tlciUyRmFwYWNoZS0xYyUyRnd3dyUyRjguMy4yNC4xNTQ4JTNBJTJGdmFyJTJGd3d3
- /opt/1cv8/x86_64/8.3.24.1548:/opt/1cv8/x86_64/8.3.24.1548
JTIwJTIwJTIwJTIwcG9ydHMlM0E=
JTIwJTIwJTIwJTIwJTIwJTIwLSUyMCUyMjgwODIlM0E4MCUyMg==
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJTIwJUQxJTgxJTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgzJUQwJUIxJUQwJUJCJUQwJUI4JUQwJUJBJUQxJTgzJUQwJUI1JUQwJUJDJUQwJUJFJUQwJUI5JTIwJUQwJUIxJUQwJUIwJUQwJUI3JUQxJThCJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQwJUI4JUQwJUJCJUQwJUI4JTIwJUQwJUJCJUQxJThFJUQwJUIxJUQxJThCJUQwJUJDJTIwJUQxJTgzJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUJEJUQxJThCJUQwJUJDJTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJDJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUJDJUQwJUI1JUQxJTg5JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUIyJTIwJUQwJUJEJUQwJUI1JUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUIwJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI1JUQwJUJBJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwMUMlMjAlRTIlODAlOTQlMjBkZWZhdWx0LnZyZC4lMjAlRDAlOUElMjAlRDAlQkYlRDElODAlRDAlQjglRDAlQkMlRDAlQjUlRDElODAlRDElODMlMjAlRDAlQkUlRDAlQkYlRDElODMlRDAlQjElRDAlQkIlRDAlQjglRDAlQkElRDAlQkUlRDAlQjIlRDElOEIlRDAlQjIlRDAlQjAlRDElODIlRDElOEMlMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDAlQkMlMjAlRDAlQjElRDAlQjAlRDAlQjclRDElODMlMjAlRTIlODAlOTQlMjB0ZXN0X2RhdGFiYXNlMiUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMCVCMiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMCVCOCUyMDElRDAlQTElMjA4LjMuMjQuMTU0OC4=
mkdir -p /opt/docker/apache-1c/www/8.3.24.1548/test_database2
touch /opt/docker/apache-1c/www/8.3.24.1548/test_database2/default.vrd
JUQwJTkyJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUI1JTIwZGVmYXVsdC52cmQlMjAlRDAlQkYlRDElODAlRDAlQkUlRDAlQkYlRDAlQjglRDElODElRDElOEIlRDAlQjIlRDAlQjAlRDAlQjUlRDAlQkMlMjAlRDAlQjElRDAlQjAlRDAlQjclRDAlQkUlRDAlQjIlRDElOEIlRDAlQjUlMjAlRDAlQkYlRDAlQjAlRDElODAlRDAlQjAlRDAlQkMlRDAlQjUlRDElODIlRDElODAlRDElOEIu
<?xml version="1.0" encoding="UTF-8"?>
JTNDcG9pbnQlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ2OC4xYy5ydSUyRjguMiUyRnZpcnR1YWwtcmVzb3VyY2Utc3lzdGVtJTIy
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYmFzZSUzRCUyMiUyRnRlc3RfZGF0YWJhc2UyJTIy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWIlM0QlMjJTcnZyJTNEJTNDU0VSVkVSX05BTUUlM0UlM0JSZWYlM0R0ZXN0X2RhdGFiYXNlMiUzQiUyMiUzRQ==
<ws pointEnableCommon="true"/>
<standardOdata enable="false"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV1c2VTZXNzaW9ucyUzRCUyMmF1dG91c2UlMjI=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2Vzc2lvbk1heEFnZSUzRCUyMjIwJTIy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcG9vbFNpemUlM0QlMjIxMCUyMg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcG9vbFRpbWVvdXQlM0QlMjI1JTIyJTJGJTNF
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDYW5hbHl0aWNzJTIwZW5hYmxlJTNEJTIydHJ1ZSUyMiUyRiUzRQ==
</point>
JUQwJTkyJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUI1JTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQwJUIyJUQwJUI4JUQxJTgwJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTg1JUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJTIwYXBhY2hlJTIwJUUyJTgwJTk0JTIwJTJGb3B0JTJGZG9ja2VyJTJGYXBhY2hlLTFjJTJGY29uZiUyRjguMy4yNC4xNTQ4LmNvbmYlMjAlRDAlQjglMjAlRDAlQjQlRDAlQkUlRDAlQjElRDAlQjAlRDAlQjIlRDAlQjglRDAlQkMlMjAlRDAlQjIlMjAlRDAlQkElRDAlQkUlRDAlQkQlRDAlQjUlRDElODYu
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.24.1548/wsap24.so"
# 1c publication
Alias "/test_database2" "/var/www/test_database2/"
JTNDRGlyZWN0b3J5JTIwJTIyJTJGdmFyJTJGd3d3JTJGdGVzdF9kYXRhYmFzZTIlMkYlMjIlM0U=
JTIwJTIwJTIwJTIwQWxsb3dPdmVycmlkZSUyMEFsbA==
JTIwJTIwJTIwJTIwT3B0aW9ucyUyME5vbmU=
JTIwJTIwJTIwJTIwUmVxdWlyZSUyMGFsbCUyMGdyYW50ZWQ=
SetHandler 1c-application
JTIwJTIwJTIwJTIwTWFuYWdlZEFwcGxpY2F0aW9uRGVzY3JpcHRvciUyMCUyMiUyRnZhciUyRnd3dyUyRnRlc3RfZGF0YWJhc2UyJTJGZGVmYXVsdC52cmQlMjI=
</Directory>
test_database2
это имя опубликованной базы данных.На этом подготовка Docker контейнера закончена, можно переходить к его запуску. Переходим в каталог Docker контейнера — /opt/docker/apache-1c/
, собираем Docker контейнер и запускаем его, командой.
ZG9ja2VyJTIwY29tcG9zZSUyMHVwJTIwLWQlMjAtLWJ1aWxk
Если в выводе видите нечто подобное, то значит Docker контейнер успешно запустился.
[+] Building 473.9s (8/8) FINISHED
...
JTVCJTJCJTVEJTIwUnVubmluZyUyMDIlMkYy
JTIwJUUyJTlDJTk0JTIwTmV0d29yayUyMGFwYWNoZS0xY19kZWZhdWx0JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwQ3JlYXRlZA==
Container apache-1c-apache_8.3.24.1548-1 Started
JUQwJTlFJUQwJUJGJUQxJTgzJUQwJUIxJUQwJUJCJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUJEJUQwJUIwJUQxJThGJTIwJUQwJUIxJUQwJUIwJUQwJUI3JUQwJUIwJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwMUMlMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDElODIlMjAlRDAlQjQlRDAlQkUlRDElODElRDElODIlRDElODMlRDAlQkYlRDAlQkQlRDAlQjAlMjAlRDAlQkYlRDAlQkUlMjAlRDElODMlRDAlQkElRDAlQjAlRDAlQjclRDAlQjAlRDAlQkQlRDAlQkQlRDAlQkUlRDAlQkMlRDElODMlMjAlRDAlQjIlMjAlRDAlQkElRDAlQkUlRDAlQkQlRDElODQlRDAlQjglRDAlQjMlRDElODMlRDElODAlRDAlQjAlRDElODYlRDAlQjglRDAlQjglMjAlRDAlQjIlRDAlQjglRDElODAlRDElODIlRDElODMlRDAlQjAlRDAlQkIlRDElOEMlRDAlQkQlRDAlQkUlRDAlQjMlRDAlQkUlMjAlRDElODUlRDAlQkUlRDElODElRDElODIlRDAlQjAlMjAlRDAlQjAlRDAlQjQlRDElODAlRDAlQjUlRDElODElRDElODMlMkMlMjAlRDAlQjIlMjAlRDAlQkMlRDAlQkUlRDAlQjUlRDAlQkMlMjAlRDElODElRDAlQkIlRDElODMlRDElODclRDAlQjAlRDAlQjUlMjAlRDElOEQlRDElODIlRDAlQkUlMjBodHRwJTNBJTJGJTJGY29udG9zby5jb20lM0E4MTgyJTJGdGVzdF9kYXRhYmFzZTI=
Управление 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
Резюме
По итогу получается плюс\минус универсальная схема публикации баз данных 1C на веб-сервере apache. Плюсом считаю то что в рамках одного сервера можно публиковать базы данных для различных платформ 1С. Из минусов, наверное то что первоначальная подготовка к работе займет какое то время, ну и публикация самих баз получается в ручном режиме, в отличие от использовании утилиты webinst
.
Если у кого какие замечания и предложения по статье, прошу в комментарии, дельные советы отразим в статье.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
8082
В строке «Опубликованная база данных 1C будет доступна по указанному в конфигурации виртуального хоста адресу, в моем случае это http://contoso.com:8180/test_database2» опечатка, порт не тот
спасибо, подправил
непонятно, какие права давать. Нет доступа к папке /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с и базе данных которая находится в кластере. В рамках данной задачи я не совсем понимаю вопроса.