├── .gitignore ├── Dockerfile ├── README.md ├── build.sh ├── container ├── docker-entrypoint.sh └── logcfg.xml └── run.sh /.gitignore: -------------------------------------------------------------------------------- 1 | *.deb 2 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:xenial 2 | 3 | ENV GOSU_VERSION 1.7 4 | RUN apt-get -qq update \ 5 | && apt-get -qq install --yes --no-install-recommends ca-certificates wget locales \ 6 | && `#----- Install the dependencies -----` \ 7 | && apt-get -qq install --yes --no-install-recommends fontconfig imagemagick \ 8 | && `#----- Deal with ttf-mscorefonts-installer -----` \ 9 | && apt-get -qq install --yes --no-install-recommends xfonts-utils cabextract \ 10 | && wget --quiet --output-document /tmp/ttf-mscorefonts-installer_3.6_all.deb http://ftp.us.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb \ 11 | && dpkg --install /tmp/ttf-mscorefonts-installer_3.6_all.deb 2> /dev/null \ 12 | && rm /tmp/ttf-mscorefonts-installer_3.6_all.deb \ 13 | && `#----- Install gosu -----` \ 14 | && wget --quiet --output-document /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \ 15 | && chmod +x /usr/local/bin/gosu \ 16 | && gosu nobody true 17 | 18 | RUN localedef --inputfile ru_RU --force --charmap UTF-8 --alias-file /usr/share/locale/locale.alias ru_RU.UTF-8 19 | ENV LANG ru_RU.utf8 20 | 21 | ADD *.deb /tmp/ 22 | 23 | ENV PLATFORM_VERSION 83 24 | ENV SERVER_VERSION 8.3.10-2639 25 | RUN dpkg --install /tmp/1c-enterprise$PLATFORM_VERSION-common_${SERVER_VERSION}_amd64.deb 2> /dev/null \ 26 | && dpkg --install /tmp/1c-enterprise$PLATFORM_VERSION-server_${SERVER_VERSION}_amd64.deb 2> /dev/null \ 27 | && rm /tmp/*.deb \ 28 | && mkdir --parents /var/log/1C /home/usr1cv8/.1cv8/1C/1cv8/conf \ 29 | && chown --recursive usr1cv8:grp1cv8 /var/log/1C /home/usr1cv8 30 | 31 | COPY container/docker-entrypoint.sh / 32 | COPY container/logcfg.xml /home/usr1cv8/.1cv8/1C/1cv8/conf 33 | 34 | ENTRYPOINT ["/docker-entrypoint.sh"] 35 | 36 | VOLUME /home/usr1cv8 37 | VOLUME /var/log/1C 38 | 39 | EXPOSE 1540-1541 1560-1591 40 | 41 | CMD ["ragent"] 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # docker-1c-server 2 | 3 | ## Что это? 4 | 5 | docker-1c-server -- это сервер 1С:Предприятия в контейнере Docker. 6 | 7 | В качестве сервера баз данных можно использовать [Postgres Professional в контейнере Docker](https://github.com/alexanderfefelov/docker-postgrespro-1c). 8 | 9 | ## Как это установить? 10 | 11 | Для установки и начального запуска получите дистрибутив сервера 1С:Предприятия: https://users.v8.1c.ru/ -> Скачать обновления -> Технологическая платформа 8.3 -> ВЕРСИЯ -> Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем -> Скачать дистрибутив 12 | 13 | Клонируйте репозиторий: 14 | 15 | git clone https://github.com/alexanderfefelov/docker-1c-server.git 16 | 17 | Скопируйте deb-файлы дистрибутива сервера 1С:Предприятия в каталог `docker-1c-server` и затем выполните команды (здесь и далее вам понадобятся права администратора): 18 | 19 | cd docker-1c-server 20 | ./build.sh 21 | ./run.sh 22 | 23 | Узнать UID и GID пользователя, с правами которого сервер 1С:Предприятия работает в контейнере, можно с помощью команды 24 | 25 | docker exec 1c-server id usr1cv8 26 | 27 | которая выдаст примерно такие данные 28 | 29 | uid=999(usr1cv8) gid=1000(grp1cv8) groups=1000(grp1cv8) 30 | 31 | ## Как остановить/запустить/перезапустить контейнер? 32 | 33 | Для управления контейнером используйте команды: 34 | 35 | docker stop 1c-server 36 | docker start 1c-server 37 | docker restart 1c-server 38 | 39 | ## Где мои данные? 40 | 41 | Данные сервера 1С:Предприятия вы можете найти в каталогах `/var/lib/docker/volumes/1c-server-home/_data` (домашний каталог пользователя `usr1cv8`) и `/var/lib/docker/volumes/1c-server-logs/_data` (технологические журналы). 42 | 43 | ## Как это удалить? 44 | 45 | Удалите контейнер: 46 | 47 | docker rm -f 1c-server 48 | 49 | Удалите образ: 50 | 51 | docker rmi alexanderfefelov/1c-server 52 | 53 | :fire: Удалите данные: 54 | 55 | docker volume rm 1c-server-home 56 | docker volume rm 1c-server-logs 57 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker build --tag alexanderfefelov/1c-server . 4 | -------------------------------------------------------------------------------- /container/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "$1" = "ragent" ]; then 4 | exec gosu usr1cv8 /opt/1C/v8.3/x86_64/ragent 5 | fi 6 | 7 | exec "$@" 8 | -------------------------------------------------------------------------------- /container/logcfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | docker run --name 1c-server \ 4 | --net host \ 5 | --detach \ 6 | --volume 1c-server-home:/home/usr1cv8 \ 7 | --volume 1c-server-logs:/var/log/1C \ 8 | --volume /etc/localtime:/etc/localtime:ro \ 9 | alexanderfefelov/1c-server 10 | --------------------------------------------------------------------------------