From 9710a2392bd7011935cb80a9b2a22e01bcb41a85 Mon Sep 17 00:00:00 2001 From: Dmitry Fofanov Date: Fri, 8 May 2026 20:50:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83?= =?UTF-8?q?=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20Docker:=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0=B0=20=D0=BD=D0=B0=20latest,?= =?UTF-8?q?=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=80=D1=82=D0=B0=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=20=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=83=D1=82?= =?UTF-8?q?=D0=B8=20=D0=BA=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8E=20wsap24?= =?UTF-8?q?.so=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BE=D0=B2=D0=BC=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web-1c/docker-compose.yml | 4 ++-- web-1c/docker/Dockerfile | 3 +++ web-1c/docker/build-image.sh | 8 ++++++-- web-1c/docker/httpd.conf | 7 ++++++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/web-1c/docker-compose.yml b/web-1c/docker-compose.yml index a14a492..8dd0fd5 100644 --- a/web-1c/docker-compose.yml +++ b/web-1c/docker-compose.yml @@ -2,14 +2,14 @@ services: app_proxy: environment: APP_HOST: web-1c_server_1 - APP_PORT: 80 + APP_PORT: 0.0.0.0:80 PROXY_AUTH_ADD: "false" server: # Образ нужно собрать ЛОКАЛЬНО до установки приложения: # cd web-1c/docker && ./build-image.sh # (см. web-1c/README.md). DFWebOS не собирает образ сам — здесь используется готовый. - image: dfwebos/apache-1c:8.3.23.1912 + image: dfwebos/apache-1c:latest restart: on-failure stop_grace_period: 1m volumes: diff --git a/web-1c/docker/Dockerfile b/web-1c/docker/Dockerfile index 3d8e79c..b2afeb2 100644 --- a/web-1c/docker/Dockerfile +++ b/web-1c/docker/Dockerfile @@ -13,6 +13,9 @@ COPY deb64.tar.gz /dist/deb64.tar.gz # и зачищаем deb-файлы, чтобы не раздувать слой образа. RUN tar -xzf /dist/deb64.tar.gz -C /dist \ && dpkg -i /dist/*.deb \ + && version="$(find /opt/1cv8/x86_64 -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | sort -V | tail -n 1)" \ + && ln -sfn "/opt/1cv8/x86_64/${version}" /opt/1cv8/current \ + && test -f /opt/1cv8/current/wsap24.so \ && rm -rf /dist # Преднастроенный конфиг Apache с подключением модуля 1С (wsap24.so) и публикацией базы по пути /BuhBase. diff --git a/web-1c/docker/build-image.sh b/web-1c/docker/build-image.sh index 756637a..da8a6ee 100755 --- a/web-1c/docker/build-image.sh +++ b/web-1c/docker/build-image.sh @@ -6,7 +6,11 @@ set -euo pipefail cd "$(dirname "$0")" -VERSION="8.3.23.1912" +VERSION="$(tar -tzf deb64.tar.gz | grep -oE '8\.3\.[0-9]+\.[0-9]+' | sort -Vu | tail -n 1)" +if [[ -z "${VERSION}" ]]; then + echo "ERROR: не удалось определить версию платформы 1С из deb64.tar.gz." >&2 + exit 1 +fi IMAGE="dfwebos/apache-1c:${VERSION}" if [[ ! -f deb64.tar.gz ]]; then @@ -17,7 +21,7 @@ if [[ ! -f deb64.tar.gz ]]; then fi echo "==> Сборка ${IMAGE}…" -docker build -t "${IMAGE}" . +docker build --no-cache --progress=plain -t "${IMAGE}" -t dfwebos/apache-1c:latest . echo "==> Готово. Локальные образы dfwebos/apache-1c:" docker images --format ' {{.Repository}}:{{.Tag}} {{.Size}} {{.ID}}' | grep '^ dfwebos/apache-1c' diff --git a/web-1c/docker/httpd.conf b/web-1c/docker/httpd.conf index 7d55af6..ee59061 100644 --- a/web-1c/docker/httpd.conf +++ b/web-1c/docker/httpd.conf @@ -558,7 +558,7 @@ SSLRandomSeed connect builtin -LoadModule _1cws_module /opt/1cv8/x86_64/8.3.23.1912/wsap24.so +LoadModule _1cws_module /opt/1cv8/current/wsap24.so # ─────────────────────────────────────────────────────────────────────────── # 1С web-публикация под префиксом DFWebOS-прокси `/app-web-1c/BuhBase/`. @@ -608,6 +608,11 @@ Alias "/app-web-1c/BuhBase" "/usr/local/apache2/htdocs/BuhBase/" # SameSite=None допустим только вместе с Secure; на локальном HTTP браузеры # отбрасывают такие cookies, что ломает сессию входа 1С. + Header onsuccess unset Cache-Control + Header always unset Cache-Control + Header always set Cache-Control "no-store, no-cache, must-revalidate, max-age=0" + Header always set Pragma "no-cache" + Header always set Expires "0" Header edit Set-Cookie ^(.*)$ "$1; SameSite=None" "expr=%{HTTPS} == 'on' || %{HTTP:X-Forwarded-Proto} == 'https'" Header edit Set-Cookie ^(.*)$ "$1; Secure" "expr=%{HTTPS} == 'on' || %{HTTP:X-Forwarded-Proto} == 'https'"