From 11bea35f68d662542a0ab0e16b6941e04a61c954 Mon Sep 17 00:00:00 2001 From: ark Date: Thu, 29 Jan 2026 00:28:27 +0300 Subject: [PATCH] working version beta --- Dockerfile | 49 ++++++++++++++++++++++++------------------------- build.sh | 2 +- entrypoint.sh | 50 ++++++++++++++++++++++++++++++-------------------- run.sh | 6 +++--- 4 files changed, 58 insertions(+), 49 deletions(-) diff --git a/Dockerfile b/Dockerfile index 762e925..0732971 100755 --- a/Dockerfile +++ b/Dockerfile @@ -5,17 +5,17 @@ ARG S6_OVERLAY_VERSION=3.2.1.0 ARG SERVER_VERSION 8.3.24.1586 # Variables For Container -ENV LANG ru_RU.UTF8 -ENV LC_ALL ru_RU.UTF8 -ENV TZ Europe/Moscow -ENV SERVER_VERSION ${SERVER_VERSION} -ENV USER usr1cv8 -ENV SERVER_DATA /home/${USER} -ENV BASE_DIR /bases -ENV WORKDIR /opt/1cv8/x86_64/${SERVER_VERSION}/ +# Common +ENV LANG=ru_RU.UTF8 +ENV LC_ALL=ru_RU.UTF8 +ENV TZ=Europe/Moscow +# Server +ENV SERVER_VERSION=${SERVER_VERSION} +ENV BASES_DIR=/bases +ENV WORKDIR=/opt/1cv8/x86_64/${SERVER_VERSION}/ +ENV LIC_DIR=/var/1C/licenses +ENV JAVA_HOME=/opt/1cv8/x86_64/${SERVER_VERSION}/jre/ -# add repo for debian 11 -#RUN sed -r -i 's/^deb(.*)$/deb\1 contrib/g' /etc/apt/sources.list # add contrib repo for debian 13 and install requiments RUN sed -i '/Components:/s/$/ contrib/' /etc/apt/sources.list.d/debian.sources RUN apt-get -qq update \ @@ -36,6 +36,7 @@ RUN apt-get -qq update \ libwebkit2gtk-4.0-37 \ && apt-get clean && apt-get autoremove +# Set locale RUN locale-gen ${LANG} \ && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone @@ -44,22 +45,21 @@ ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLA RUN tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-x86_64.tar.xz /tmp RUN tar -C / -Jxpf /tmp/s6-overlay-x86_64.tar.xz - -# explicitly set user/group IDs -RUN set -eux; \ - groupadd -r ${USER} --gid=1001; \ - useradd -m -r -g ${USER} --uid=1001 --home-dir=/home/${USER} --shell=/bin/bash ${USER}; # Install 1C Server -ADD ./distr/setup-full-${SERVER_VERSION}-x86_64.run /tmp/distr/ -RUN /tmp/distr/setup-full-${SERVER_VERSION}-x86_64.run \ +ADD ./distr/setup-full-${SERVER_VERSION}-x86_64.run /tmp/distr/1c/ +ADD ./distr/1c_enterprise_license_tools_0.15.0_2_linux_x86_64.tar.gz /tmp/distr/license/ +RUN /tmp/distr/1c/setup-full-${SERVER_VERSION}-x86_64.run \ --mode unattended \ --enable-components \ - server,ws,server_admin,config_storage_server,additional_admin_functions,liberica_jre,integrity_monitoring,v8_install_deps \ - && rm /tmp/distr/* -#Install license tool -ADD ./distr/1c_enterprise_license_tools_0.15.0_2_linux_x86_64.tar.gz /tmp/ -#RUN /tmp/1ce-installer-cli install --ignore-signature-warnings + ws,liberica_jre,v8_install_deps,client_thin_fib \ + --disable-components \ + client_full + +# RUN rm /tmp/distr/* + + +RUN /tmp/distr/license/1ce-installer-cli install --ignore-signature-warnings #COPY ./services.d /etc/services.d COPY ./entrypoint.sh /entrypoint.sh @@ -71,6 +71,5 @@ ENTRYPOINT [ "/entrypoint.sh" ] EXPOSE 1540-1541 1545 1560-1591 EXPOSE 80 443 -VOLUME ${SERVER_DATA} -VOLUME ${BASE_DIR} - +VOLUME ${BASES_DIR} +VOLUME ${LIC_DIR} diff --git a/build.sh b/build.sh index 97b04bc..bae13d1 100755 --- a/build.sh +++ b/build.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker build --tag srv1c:8.3.27.1859 --build-arg SERVER_VERSION=8.3.27.1859 . \ No newline at end of file +docker build --tag srv1c-web:8.3.27.1859 --build-arg SERVER_VERSION=8.3.27.1859 . \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh index aea6932..548a6db 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -7,37 +7,48 @@ log() { } check() { - log "пути к java" - export JAVA_HOME="/opt/1cv8/x86_64/$SERVER_VERSION/jre/" - export PATH="/opt/1cv8/x86_64/$SERVER_VERSION/jre/bin:$PATH" -} - -setup() { - if [ ! -d "/opt/1cv8/x86_64/${SERVER_VERSION}" ]; then + log "Проверка наличия сервера" + if [ ! -d "/opt/1cv8/x86_64/${SERVER_VERSION}/" ]; then log "Нужная версия 1С $SERVER_VERSION не установленна в $WORKDIR " - log "Установка компонентов 1С версии ${SERVER_VERSION}" - /tmp/distr/setup-full-${SERVER_VERSION}-x86_64.run \ - --enable-components ws,v8_install_deps,server_admin \ - --mode unattended + return 1 else - echo "Платформа 1С $SERVER_VERSION уже установлена. Путь: $WORKDIR" + log "Платформа 1С $SERVER_VERSION уже установлена. Путь: $WORKDIR" fi - - if [ ! -f "/etc/apache2/mods-enabled/wsap24.load" ]; then + log "Проверка установленного модуля поддержки веб сервисов" + if [ ! -e "/etc/apache2/mods-enabled/wsap24.load" ]; then log "Подключаю модуль wsap24" echo "LoadModule _1cws_module /opt/1cv8/x86_64/${SERVER_VERSION}/wsap24.so" > /etc/apache2/mods-available/wsap24.load ln -s /etc/apache2/mods-available/wsap24.load /etc/apache2/mods-enabled/wsap24.load else log "Модуль уже wsap24.load подключен" fi + log "Проверка баз в $BASES_DIR" + if [ -d $BASES_DIR ]; then + log "Каталог баз данных $BASES_DIR обнаружен" + for dir in "$BASES_DIR"/*; do + if [ ! -d $dir ]; then + return 1 + fi + log "$dir" + if [ -f $dir/1Cv8.1CD ]; then + log "$dir - каталог базы даннх" + log "Назначаю права на каталог $dir " + chown -R www-data:www-data $dir + local base_name=$(basename "$dir") + publish "$base_name" + fi + done + fi +} - log "Публикация Баз на вебсервере" - /opt/1cv8/x86_64/${SERVER_VERSION}/webinst \ +publish() { + log "Публикация $base_name" + $WORKDIR/webinst \ -publish \ -apache24 \ - -wsdir test \ - -dir /var/www/1c/test \ - -connstr "File=/bases/test;" \ + -wsdir $base_name \ + -dir /var/www/1c/$base_name \ + -connstr "File=/bases/$base_name;" \ -confpath /etc/apache2/apache2.conf } @@ -47,7 +58,6 @@ start() { main() { log "=== Запуск Web Сервера ===" check - setup log "=== Все готово, запускаем сервер ===" start } diff --git a/run.sh b/run.sh index 3832f40..c0e17c1 100755 --- a/run.sh +++ b/run.sh @@ -2,15 +2,15 @@ docker run -d \ --restart always \ - -h srv1c \ + -h srv1c-web \ -p 1540-1545:1540-1545 \ -p 1560-1591:1560-1591 \ -p 888:80 \ - --name srv1c \ + --name srv1c-web \ -v /srv/fdata/srv1c/data:/home/usr1cv8 \ -v /srv/fdata/srv1c/licenses:/var/1C/licenses \ -v /srv/sdata/srv1c/backup:/backup \ -v /etc/localtime:/etc/localtime:ro \ -v /srv/bases:/bases \ -srv1c:8.3.27.1859 +srv1c-web:8.3.27.1859