У 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" у меня лежит пустая конфа.
У 1cedtcli есть команда uninstall-platform-support, которая вырезает из поставки ненужную версию платформы. Когда она появилась - не знаю, раньше ее или не было или не замечал.
У меня при удалении всех лишних версий кроме одной образ ЕДТ уменьшился с 18Гб до 6Гб.
Т.к. разным командам нужны разные платформы для образа и не факт, что заработает на ЕДТ старше 2925.2 - вырезать их прям в репозитории нельзя. Пока вариант, что каждый может дотюнить вариант для себя.
Вот так у меня выглядит установка:
В каталоге "edt\Proj" у меня лежит пустая конфа.