Skip to content

Уменьшение размера образа ЕДТ #96

Description

@Stepa86

У 1cedtcli есть команда uninstall-platform-support, которая вырезает из поставки ненужную версию платформы. Когда она появилась - не знаю, раньше ее или не было или не замечал.
У меня при удалении всех лишних версий кроме одной образ ЕДТ уменьшился с 18Гб до 6Гб.

Т.к. разным командам нужны разные платформы для образа и не факт, что заработает на ЕДТ старше 2925.2 - вырезать их прям в репозитории нельзя. Пока вариант, что каждый может дотюнить вариант для себя.

Вот так у меня выглядит установка:

# Копирование конфигурации для прогрева ЕДТ
COPY ./edt/Proj /tmp/edt_Proj

WORKDIR /tmp/${downloads}

RUN chmod -R +x . \
  && ./1ce-installer-cli install all --ignore-hardware-checks --ignore-signature-warnings\
  && EDT_PATH="$(find /opt/1C/1CE -type f -name 1cedt -print -quit)" \
  && [ -n "$EDT_PATH" ] \
  && ln -s $(dirname $(find /opt/1C/1CE -name ring)) /opt/1C/1CE/components/1c-enterprise-ring \
  #1cedtcli отсутствует в EDT версии <2023.1.0
  && if [ -n "$(find /opt/1C/1CE -name 1cedtcli)" ]; then ln -s $(dirname $(find /opt/1C/1CE -name 1cedtcli)) /opt/1C/1CE/components/1cedtcli; fi \
  && ln -sfn "$(dirname "$EDT_PATH")" /opt/1C/1CE/components/1cedt \
  && dbus-uuidgen > /var/lib/dbus/machine-id \
  # Добавление пути к установленной джаве
  && JAVA_PATH=$(find /opt/1C/1CE/components -name "axiom-jdk*" -type d -print -quit) \
  && sed -i "/-vmargs/i -vm\n$JAVA_PATH/bin" "$(dirname "$EDT_PATH")/1cedt.ini" \
  # Прогрев ЕДТ
  && mkdir -p /tmp/edt_xml \
  && chmod +x /opt/1C/1CE/components/1cedtcli/1cedtcli \
  # Удаление лишних версий, кроме 8.5.1
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command version \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.8 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.9 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.10 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.11 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.12 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.13 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.14 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.15 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.16 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.17 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.18 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.19 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.20 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.21 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.22 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.23 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.24 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.25 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.26 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command uninstall-platform-support --version 8.3.27 \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -command platform-versions \
  && find /tmp/edt_ws/.metadata -type f -name "*log*" -delete 2>/dev/null \
  && /opt/1C/1CE/components/1cedtcli/1cedtcli -data /tmp/edt_ws -v -timeout 180 -command export --project /tmp/edt_Proj --configuration-files /tmp/edt_xml \
  && echo "<<< ALL LOG FILES >>>" \
  && find /tmp/edt_ws/.metadata -type f -name "*log*" | while read -r log_file; do \
        echo "<<< $(basename "$log_file") >>>"; \
        cat "$log_file"; \
        echo ">>> $(basename "$log_file") <<<"; \
    done \
  && echo ">>> ALL LOG FILES <<<" \
  && echo "<<< 1cedt.ini >>>" \
  && cat "$(dirname "$EDT_PATH")"/1cedt.ini \
  && echo ">>> 1cedt.ini <<<" \
  && rm -rf \
    /tmp/* \
  # создадим пустой файл, чтобы не было ошибок на следуюших этапах в случае его отсутствия
  && if [ ! -f /etc/1C/1CE/ring-commands.cfg ]; then touch /etc/1C/1CE/ring-commands.cfg; fi

В каталоге "edt\Proj" у меня лежит пустая конфа.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions