diff --git a/build-base-swarm-jenkins-agent.sh b/build-base-swarm-jenkins-agent.sh
index 12b7646..543d03d 100755
--- a/build-base-swarm-jenkins-agent.sh
+++ b/build-base-swarm-jenkins-agent.sh
@@ -30,29 +30,30 @@ docker build \
-f oscript/Dockerfile \
$last_arg
-docker build \
- --build-arg ONEC_USERNAME=$ONEC_USERNAME \
- --build-arg ONEC_PASSWORD=$ONEC_PASSWORD \
- --build-arg ONEC_VERSION=$ONEC_VERSION \
- --build-arg DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
- --build-arg BASE_IMAGE=oscript-downloader \
- --build-arg BASE_TAG=latest \
- -t ${DOCKER_REGISTRY_URL:+"$DOCKER_REGISTRY_URL/"}onec-client:$ONEC_VERSION \
- -f client/Dockerfile \
- $last_arg
+# docker build \
+# --build-arg ONEC_USERNAME=$ONEC_USERNAME \
+# --build-arg ONEC_PASSWORD=$ONEC_PASSWORD \
+# --build-arg ONEC_VERSION=$ONEC_VERSION \
+# --build-arg DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
+# --build-arg BASE_IMAGE=oscript-downloader \
+# --build-arg BASE_TAG=latest \
+# -t ${DOCKER_REGISTRY_URL:+"$DOCKER_REGISTRY_URL/"}onec-client:$ONEC_VERSION \
+# -f client/Dockerfile \
+# $last_arg
-if [[ -n "$DOCKER_REGISTRY_URL" ]]; then
- docker push $DOCKER_REGISTRY_URL/onec-client:$ONEC_VERSION
-else
- echo "DOCKER_REGISTRY_URL not set, skipping docker push."
-fi
+# if [[ -n "$DOCKER_REGISTRY_URL" ]]; then
+# docker push $DOCKER_REGISTRY_URL/onec-client:$ONEC_VERSION
+# else
+# echo "DOCKER_REGISTRY_URL not set, skipping docker push."
+# fi
docker build \
- --pull \
--build-arg ONEC_USERNAME=$ONEC_USERNAME \
--build-arg ONEC_PASSWORD=$ONEC_PASSWORD \
--build-arg ONEC_VERSION=$ONEC_VERSION \
--build-arg DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
+ --build-arg BASE_IMAGE=oscript-downloader \
+ --build-arg BASE_TAG=latest \
-t ${DOCKER_REGISTRY_URL:+"$DOCKER_REGISTRY_URL/"}onec-client-vnc:$ONEC_VERSION \
-f client-vnc/Dockerfile \
$last_arg
diff --git a/client-vnc/Dockerfile b/client-vnc/Dockerfile
index 4b1d50b..428946a 100644
--- a/client-vnc/Dockerfile
+++ b/client-vnc/Dockerfile
@@ -1,39 +1,78 @@
+# Используем базовый образ для скачивания
ARG DOCKER_REGISTRY_URL
+ARG BASE_IMAGE
+ARG BASE_TAG
+FROM ${DOCKER_REGISTRY_URL:+"$DOCKER_REGISTRY_URL/"}${BASE_IMAGE}:${BASE_TAG} AS downloader
+
+# Копирование скрипта скачивания и локальных дистрибутивов
+COPY ./scripts/download_yard.sh /download.sh
+COPY ./distr /distr
+RUN chmod +x /download.sh
+
+# Скачивание дистрибутива 1С с использованием вынесенного скрипта
+ARG ONEC_USERNAME
+ARG ONEC_PASSWORD
ARG ONEC_VERSION
-FROM ${DOCKER_REGISTRY_URL:+"$DOCKER_REGISTRY_URL/"}onec-client:${ONEC_VERSION} AS base
-FROM debian:bookworm-slim
+WORKDIR /tmp
+
+# Установка необходимых пакетов и генерация локали
+RUN apt-get update \
+ && apt-get install -y \
+ locales \
+ p7zip-rar \
+ p7zip-full \
+ && rm -rf /var/lib/apt/lists/* \
+ && locale-gen ru_RU.UTF-8 \
+ && localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8
+
+# Установка переменных окружения для корректной работы локали
+ENV LANG ru_RU.UTF-8
+ENV LANGUAGE ru_RU:ru
+ENV LC_ALL ru_RU.UTF-8
+
+RUN /download.sh "$ONEC_USERNAME" "$ONEC_PASSWORD" "$ONEC_VERSION" "client"
+
+# Начало основной стадии сборки
+FROM debian:bookworm-slim AS base
+
+# Копируем скрипты и файлы установки
ARG ONEC_VERSION
+ARG nls_enabled=false
+ENV nls=$nls_enabled
+ENV distrPath=/tmp/downloads/Platform83/${ONEC_VERSION}
+ENV installer_type=client
-COPY --from=base /opt /opt
+COPY ./scripts/install_new.sh /install.sh
+COPY --from=downloader ${distrPath}/ /tmp/distr/
-ADD https://github.com/just-containers/s6-overlay/releases/download/v1.21.8.0/s6-overlay-amd64.tar.gz /tmp/
+RUN apt-get update && apt-get install -y --no-install-recommends curl \
+ && chmod +x /install.sh \
+ && cd /tmp/distr \
+ && /install.sh \
+ && apt-get purge -y --auto-remove curl \
+ && rm -rf /var/lib/apt/lists/* /tmp/distr
-RUN apt-get update \
- && apt-mark hold iptables \
- && env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
- dbus-x11 \
- psmisc \
- xdg-utils \
- x11-xserver-utils \
- x11-utils \
- xvfb \
- && env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
- xfce4 \
- xfce4-goodies \
- && sed -i 's%%%' /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
- dirmngr \
- gnupg \
- && echo "deb http://http.debian.net/debian/ bookworm main contrib non-free" > /etc/apt/sources.list \
- && echo "deb http://http.debian.net/debian/ bookworm-backports main" >> /etc/apt/sources.list \
- && echo "deb http://http.debian.net/debian/ bookworm-proposed-updates main contrib non-free" >> /etc/apt/sources.list \
- && echo "deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free" >> /etc/apt/sources.list \
- && echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections \
+# create symlink to current 1c:enterprise directory
+COPY ./scripts/create-symlink-to-current-1cv8.sh /create-symlink-to-current-1cv8.sh
+RUN chmod +x /create-symlink-to-current-1cv8.sh \
+ && /create-symlink-to-current-1cv8.sh \
+ && rm /create-symlink-to-current-1cv8.sh
+
+COPY ./configs/client/current/ /opt/1cv8/current/
+
+FROM debian:bookworm-slim AS client
+LABEL maintainer="Anton Kvashenkin (@jugatsu)"
+
+ARG onec_uid="1001"
+ARG onec_gid="1001"
+
+RUN set -xe \
+ && echo "deb http://deb.debian.org/debian bookworm main contrib non-free" > /etc/apt/sources.list \
&& apt-get update \
+ && echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates \
- git \
locales \
ttf-mscorefonts-installer \
libfontconfig1 \
@@ -41,34 +80,65 @@ RUN apt-get update \
libglib2.0-0 \
libgtk2.0-0 \
libodbc1 \
- libtcmalloc-minimal4 \
libmagickwand-6.q16-6 \
libwebkit2gtk-4.0-37 \
at-spi2-core \
- procps \
- x11vnc \
- iproute2 \
libglu1-mesa \
- # Install libpng12-0 from debian-snapshot
- && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7638D0442B90D010 8B48AD6246925553 \
- && echo "deb http://snapshot.debian.org/archive/debian/20160413T160058Z/ unstable main" > /etc/apt/sources.list.d/debian-snapshot.list \
- && apt-get -o Acquire::AllowInsecureRepositories=true -o Acquire::Check-Valid-Until=false update \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated --no-install-recommends \
- usrmerge \
- libpng12-0 \
- && rm -rf /etc/apt/sources.list.d/debian-snapshot.list \
- && apt-get update \
- # Install libwebkitgtk from stretch
- && echo "deb http://archive.debian.org/debian/ stretch main contrib non-free" > /etc/apt/sources.list.d/stretch.list \
- && apt-get update \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
- libwebkitgtk-3.0-0 \
- && rm -rf /etc/apt/sources.list.d/stretch.list \
- && apt-get update \
+ libsm6 \
&& rm -rf \
/var/lib/apt/lists/* \
/var/cache/debconf \
&& localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8
+
+COPY --from=base /opt /opt
+
+ENV LANG ru_RU.UTF-8
+
+RUN groupadd -r grp1cv8 --gid=$onec_gid \
+ && useradd -r -g grp1cv8 --uid=$onec_uid --home-dir=/home/usr1cv8 --shell=/bin/bash usr1cv8 \
+ && mkdir -p /home/usr1cv8/.1cv8 \
+ && chown -R usr1cv8:grp1cv8 /home/usr1cv8
+
+VOLUME /home/usr1cv8/.1cv8/
+
+USER usr1cv8
+
+CMD ["/opt/1cv8/current/1cv8"]
+
+FROM client AS client-vnc
+
+LABEL maintainer="Alexander Strizhachuk "
+
+USER root
+
+RUN set -xe \
+ && echo "deb http://http.debian.net/debian/ bookworm-backports main" > /etc/apt/sources.list.d/backports.list \
+ && echo "deb http://http.debian.net/debian/ bookworm-proposed-updates main contrib non-free" > /etc/apt/sources.list.d/proposed-updates.list \
+ && echo "deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free" > /etc/apt/sources.list.d/security.list \
+ && apt-get update \
+ && echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ dbus-x11 \
+ psmisc \
+ xdg-utils \
+ x11-xserver-utils \
+ x11-utils \
+ xvfb \
+ xfce4 \
+ xfce4-goodies \
+ dirmngr \
+ gnupg \
+ git \
+ libtcmalloc-minimal4 \
+ procps \
+ x11vnc \
+ iproute2 \
+ xz-utils \
+ && sed -i 's%%%' /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml \
+ && rm -rf \
+ /var/lib/apt/lists/* \
+ /var/cache/debconf
+
ENV LANG=ru_RU.UTF-8
# remove DST Root CA X3 cert if it exists
@@ -77,21 +147,21 @@ RUN chmod +x /remove-dst-root-ca-x3.sh \
&& /remove-dst-root-ca-x3.sh \
&& rm /remove-dst-root-ca-x3.sh
-RUN tar xzfh /tmp/s6-overlay-amd64.tar.gz -C / \
- && rm -rf /tmp/s6-overlay-amd64.tar.gz
-
-RUN groupadd -r usr1cv8 --gid=2001 \
- && useradd -r -g usr1cv8 --uid=2001 --home-dir=/home/usr1cv8 --shell=/sbin/nologin usr1cv8 \
- && mkdir -p /home/usr1cv8/.1cv8 \
- && mkdir -p /home/usr1cv8/.1C/1cestart \
- && chown -R usr1cv8:usr1cv8 /home/usr1cv8
-
-COPY ./configs/client-vnc/rootfs/ /
-
ENV DISPLAY=:0
ENV DISPLAY_WIDTH=1440
ENV DISPLAY_HEIGHT=900
EXPOSE 5900
+# Install s6-overlay v3
+ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.2/s6-overlay-noarch.tar.xz /tmp/
+ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.2/s6-overlay-x86_64.tar.xz /tmp/
+ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.2/s6-overlay-symlinks-noarch.tar.xz /tmp/
+RUN tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \
+ && tar -C / -Jxpf /tmp/s6-overlay-x86_64.tar.xz \
+ && tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz \
+ && rm -f /tmp/s6-overlay-noarch.tar.xz /tmp/s6-overlay-x86_64.tar.xz /tmp/s6-overlay-symlinks-noarch.tar.xz
+
+COPY ./configs/client-vnc/rootfs-v3/ /
+
ENTRYPOINT ["/init"]
diff --git a/configs/client-vnc/rootfs/etc/services.d/onec/xvfb.dep b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/onec/dependencies.d/xvfb
similarity index 100%
rename from configs/client-vnc/rootfs/etc/services.d/onec/xvfb.dep
rename to configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/onec/dependencies.d/xvfb
diff --git a/configs/client-vnc/rootfs/etc/services.d/onec/run b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/onec/run
similarity index 62%
rename from configs/client-vnc/rootfs/etc/services.d/onec/run
rename to configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/onec/run
index 6778ac0..ba15022 100644
--- a/configs/client-vnc/rootfs/etc/services.d/onec/run
+++ b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/onec/run
@@ -3,4 +3,4 @@
# https://github.com/just-containers/s6-overlay/issues/165
export HOME=/home/usr1cv8
-exec s6-setuidgid usr1cv8 /opt/1cv8/current/1cv8
+exec s6-setuidgid usr1cv8 /opt/1cv8/current/1cv8 $ONEC_EXEC_PARAMS
diff --git a/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/onec/type b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/onec/type
new file mode 100644
index 0000000..1780f9f
--- /dev/null
+++ b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/onec/type
@@ -0,0 +1 @@
+longrun
\ No newline at end of file
diff --git a/configs/client-vnc/rootfs/etc/services.d/x11vnc/xfce.dep b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/onec
similarity index 100%
rename from configs/client-vnc/rootfs/etc/services.d/x11vnc/xfce.dep
rename to configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/onec
diff --git a/configs/client-vnc/rootfs/etc/services.d/xfce/xvfb.dep b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/x11vnc
similarity index 100%
rename from configs/client-vnc/rootfs/etc/services.d/xfce/xvfb.dep
rename to configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/x11vnc
diff --git a/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/xfce b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/xfce
new file mode 100644
index 0000000..e69de29
diff --git a/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/xvfb b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/xvfb
new file mode 100644
index 0000000..e69de29
diff --git a/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/x11vnc/dependencies.d/xvfb b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/x11vnc/dependencies.d/xvfb
new file mode 100644
index 0000000..e69de29
diff --git a/configs/client-vnc/rootfs/etc/services.d/x11vnc/run b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/x11vnc/run
similarity index 100%
rename from configs/client-vnc/rootfs/etc/services.d/x11vnc/run
rename to configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/x11vnc/run
diff --git a/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/x11vnc/type b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/x11vnc/type
new file mode 100644
index 0000000..1780f9f
--- /dev/null
+++ b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/x11vnc/type
@@ -0,0 +1 @@
+longrun
\ No newline at end of file
diff --git a/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xfce/dependencies.d/xvfb b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xfce/dependencies.d/xvfb
new file mode 100644
index 0000000..e69de29
diff --git a/configs/client-vnc/rootfs/etc/services.d/xfce/run b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xfce/run
similarity index 100%
rename from configs/client-vnc/rootfs/etc/services.d/xfce/run
rename to configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xfce/run
diff --git a/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xfce/type b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xfce/type
new file mode 100644
index 0000000..1780f9f
--- /dev/null
+++ b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xfce/type
@@ -0,0 +1 @@
+longrun
\ No newline at end of file
diff --git a/configs/client-vnc/rootfs/etc/services.d/xvfb/run b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xvfb/run
similarity index 100%
rename from configs/client-vnc/rootfs/etc/services.d/xvfb/run
rename to configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xvfb/run
diff --git a/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xvfb/type b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xvfb/type
new file mode 100644
index 0000000..1780f9f
--- /dev/null
+++ b/configs/client-vnc/rootfs-v3/etc/s6-overlay/s6-rc.d/xvfb/type
@@ -0,0 +1 @@
+longrun
\ No newline at end of file
diff --git a/configs/client-vnc/rootfs/etc/fix-attrs.d/01-usr1c8-ibases b/configs/client-vnc/rootfs/etc/fix-attrs.d/01-usr1c8-ibases
deleted file mode 100644
index 0988f07..0000000
--- a/configs/client-vnc/rootfs/etc/fix-attrs.d/01-usr1c8-ibases
+++ /dev/null
@@ -1 +0,0 @@
-/home/usr1cv8/.1C/1cestart/ibases.v8i false usr1cv8 0644 0755
diff --git a/configs/swarm-jenkins-agent/rootfs-v3/etc/s6-overlay/s6-rc.d/jenkins-agent/run b/configs/swarm-jenkins-agent/rootfs-v3/etc/s6-overlay/s6-rc.d/jenkins-agent/run
new file mode 100644
index 0000000..fa48afa
--- /dev/null
+++ b/configs/swarm-jenkins-agent/rootfs-v3/etc/s6-overlay/s6-rc.d/jenkins-agent/run
@@ -0,0 +1,10 @@
+#!/usr/bin/with-contenv sh
+
+wget -O agent.jar "${DOCKER_SWARM_PLUGIN_JENKINS_AGENT_JAR_URL}"
+exec java -jar agent.jar \
+ -url "${JENKINS_URL}" \
+ -secret "${DOCKER_SWARM_PLUGIN_JENKINS_AGENT_SECRET}" \
+ -noReconnect \
+ -name "${JENKINS_AGENT_NAME}" \
+ -webSocket \
+ -workDir /home/jenkins
\ No newline at end of file
diff --git a/configs/swarm-jenkins-agent/rootfs-v3/etc/s6-overlay/s6-rc.d/jenkins-agent/type b/configs/swarm-jenkins-agent/rootfs-v3/etc/s6-overlay/s6-rc.d/jenkins-agent/type
new file mode 100644
index 0000000..1780f9f
--- /dev/null
+++ b/configs/swarm-jenkins-agent/rootfs-v3/etc/s6-overlay/s6-rc.d/jenkins-agent/type
@@ -0,0 +1 @@
+longrun
\ No newline at end of file
diff --git a/configs/swarm-jenkins-agent/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/jenkins-agent b/configs/swarm-jenkins-agent/rootfs-v3/etc/s6-overlay/s6-rc.d/user/contents.d/jenkins-agent
new file mode 100644
index 0000000..e69de29
diff --git a/oscript/Dockerfile b/oscript/Dockerfile
index 556fe47..1c5a4b5 100644
--- a/oscript/Dockerfile
+++ b/oscript/Dockerfile
@@ -66,4 +66,4 @@ COPY ./oscript/docker-entrypoint.sh /
RUN chmod 755 /docker-entrypoint.sh \
&& chmod +x /docker-entrypoint.sh
-ENTRYPOINT ["/docker-entrypoint.sh"]
+ENTRYPOINT ["/init"]
diff --git a/swarm-jenkins-agent/Dockerfile b/swarm-jenkins-agent/Dockerfile
index b87de65..0e75971 100644
--- a/swarm-jenkins-agent/Dockerfile
+++ b/swarm-jenkins-agent/Dockerfile
@@ -25,8 +25,6 @@ RUN set -xe \
ENV LANG ru_RU.UTF-8
-COPY ./swarm-jenkins-agent/docker-entrypoint.sh /
-RUN chmod 755 /docker-entrypoint.sh \
- && chmod +x /docker-entrypoint.sh
+COPY ./configs/swarm-jenkins-agent/rootfs-v3/ /
-ENTRYPOINT ["/docker-entrypoint.sh"]
+ENTRYPOINT ["/init"]