Добавление сертификатов и плагинов
Для снижения векторов атаки на приложение и минимизации возможных рисков, при сборке Docker контейнера time-server используется образ с минимальным набором библиотек/утилит.
Модификация Docker образа может потребоваться в случае, когда нужно добавить какой либо внешний плагин, не входящий в поставку, или корневой сертификат внутреннего удостоверяющего центра (УЦ).
Для решения этих задач предлагаем использовать следующий подход со сборкой нового Docker-образа на основе базового образа time-server:
ARG TIME_SERVER_VERSION
ARG PREPARE_IMAGE="ubuntu:jammy"
ARG TIME_SERVER_IMAGE="docker.registry.tbank.ru/time/time-server/time-server:${TIME_SERVER_VERSION}"
ARG PUID=2000
ARG PGID=2000
FROM ${PREPARE_IMAGE} as prepare
# Копируем сертификаты в образ и собираем bundle сертификатов, которые будем использовать в финальном образе
COPY cert/ /usr/local/share/ca-certificates/
RUN apt update -y && \
apt install ca-certificates -y && \
update-ca-certificates
FROM ${TIME_SERVER_IMAGE} as time-server
ARG PUID
ARG PGID
# Copy certificates
# Копируем bundle сертификатов, подготовленных на предыдущем этапе, в образ time-server
COPY /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
# Add custom plugins
ADD https://github.com/XXXXXXX/some-plugin/releases/download/v3.2.5/some-plugin.tar.gz /time/prepackaged_plugins/some-plugin.tar.gz