Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 17 additions & 16 deletions build-base-swarm-jenkins-agent.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
184 changes: 127 additions & 57 deletions client-vnc/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,74 +1,144 @@
# Используем базовый образ для скачивания
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%<property name="ThemeName" type="string" value="Xfce"/>%<property name="ThemeName" type="string" value="Raleigh"/>%' /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 <anton.jugatsu@gmail.com> (@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 \
libgsf-1-114 \
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 <a.strizhachuk@yandex.ru>"

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%<property name="ThemeName" type="string" value="Xfce"/>%<property name="ThemeName" type="string" value="Raleigh"/>%' /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
Expand All @@ -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"]
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
longrun
Empty file.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
longrun
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
longrun
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
longrun
1 change: 0 additions & 1 deletion configs/client-vnc/rootfs/etc/fix-attrs.d/01-usr1c8-ibases

This file was deleted.

Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
longrun
2 changes: 1 addition & 1 deletion oscript/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
6 changes: 2 additions & 4 deletions swarm-jenkins-agent/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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"]