Для запуска Docker контейнера с 1С, необходимо сначала подготовить Docker образ. Казалось бы почему не использовать готовый образ 1С, например подготовленный кем-то и загруженный на Dockerhub?
Загрузка дистрибутива 1С
Получается, что Docker образ с платформой 1С на борту запрещено распространять в открытых источниках, а значит начнем с загрузки дистрибутива с сайта https://releases.1c.ru/
Я решил использовать бета версию платформы 8.5, чтобы за одно и протестировать ее, к тому же это самый обсуждаемый релиз в сети.
Скачиваем дистрибутив deb64_8_5_1_189.zip
Ждем пока загрузится дистрибутив.
После загрузки переименуем его в deb64.zip.
Создание Dockerfile
Для того, чтобы собрать Docker образ, создадим dockerfile с инструкциями к действию. В качестве базового образа будем использовать стандартный образ httpd:2.4.
FROM httpd:2.4
# Данный образ базируется на стандартном образе Debian+Apache 2.4: https://store.docker.com/images/httpd
# Копируем дистрибутив в директорию dist
COPY deb64.zip /dist/deb64.zip
# Разархивируем дистрибутив
RUN apt-get update && apt-get install -y \
unzip && \
unzip /dist/deb64.zip -d /dist \
&& dpkg -i /dist/*.deb \
&& rm /dist/*.deb
# Копируем внутрь контейнера заранее подготовленный конфиг от Apache
COPY httpd.conf /usr/local/apache2/conf/httpd.conf
# Копируем внутрь контейнера заранее подготовленный конфиг с настройками подключения к серверу 1С
COPY default.vrd /usr/local/apache2/htdocs/BuhBase/default.vrd
Я работаю в Windows и создавать образ буду в Windows, шаги одинаковы в любой системе. Создадим каталог для нашего проекта:
В моем случае это каталог C:\docker\docker1c
Все файлы проекта можно скачать с github.
Откроем командную строку или powershell, перейдем в рабочую директорию
cd C:\docker\docker1c
Теперь выполним команду для сборки образа:
docker build -t apache-1c .
В результате получим собранный образ apache-1c
Проверим в Docker Desktop, что наш образ появился.
Теперь выполним запуск образа командой:
docker run --add-host Serv1C:192.168.1.15 --publish 80:80 apache-1c
Видим, что контейнер запущен:
Пробуем открыть страницу:
http://localhost/BuhBase/
И видим, что сервер 1С запущен, но не находит базу 1С.
Следующим шагом запустим еще один контейнер с СУБД, скорее всего я остановлюсь на postgresql и создадим соответствующую базу 1С.