/
Модификация Docker образа

Модификация Docker образа

Тип статьи

Инструкция

КомпетенцииАдминистратор
Необходимые праваroot
Версия платформы2.21.1
Статус
БЕТА
Сложность легко
Полезные ссылкиDocker CLI - https://docs.docker.com/engine/reference/commandline/docker/
Дополнительные сведенияUbuntu 20.04, Docker 20.10.2

При устаревании инструкции используйте описанные в ней подходы и более свежие знания в документации актуальной версии платформы и docker. Вы также всегда можете написать на support@visiology.su с запросом о помощи или замечанием по инструкции.

Содержание



Введение


Данная инструкция поможет вам отредактировать файлы в контейнере Docker и затем зафиксировать эти изменения. В инструкции будут рассмотрены два способа.

Конкретно в данном примере мы изменим значения атрибутов стиля логотипа на странице логина.


1. Вводные данные


Имеем Ubuntu 20.04, Docker 20.10.2 и платформу Visiology 2.21.1.

Железо типовое и соответствует системным требованиям платформы для целей тестирования (см. статью системные требования).


2. Редактирование файлов в контейнере


Приступаем к редактирование файлов.

Для начала входим в контейнер Identity Server. Вводим следующую команду:

sudo docker exec -it $(sudo docker ps --format "{{.Names}}" --filter name=identity) /bin/bash

После входа в контейнер открываем файл стилей для редактирования:

nano wwwroot/css/portal/site.css

В файле находим секцию .company-logo и редактируем нужные нам атрибуты. Например атрибут margin-left задаёт центрирование логотипа, если логотип очень широкий, можно подкорректировать это значение.

После редактирования выходим из контейнера нажав Ctrl+D, либо набрав команду:

exit

3. Фиксируем изменения контейнера в новый Docker образ


Вводим команду:

sudo docker commit -m "Identity with replace title" $(sudo docker ps | grep "identity" | awk '{print $1}') identity-server:custom

Тем самым мы создадим новый образ identity-server:custom с зафиксированными изменениями.

Чтобы использовать данный образ в платформе, ему необходимо задать имя и тег как у текущего образа identity server, либо в скрипте run.sh заменить название образа и тег. Мы переименуем наш кастомный образ:

sudo docker tag identity-server:custom cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/identity-server:latest

После этого можно перезапустить платформу.

sudo ./run.sh --restart

Предупреждение

После обновления платформы, мало того, что придётся опять изменять тег образа, но также наш кастомный образ устареет и его придётся создавать заново. Чтобы избежать этой процедуры, можно пойти другим путём. Об этом далее.

4. Как обойтись без создания нового образа


Можно выполнить маппинг нужного нам файл в каталог Docker хоста. Для этого мы открываем файл platform.yml (лежит в папке с дистрибутивом платформы) для редактирования:

sudo vim ./platform.yml

В этом файле ищем секцию "identity-server:" и в блоке "volumes:" добавляем следующее:

/docker-volume/identity-server/site.css:/app/wwwroot/css/portal/site.css

Изменённый файл site.css необходимо скопировать в каталог /docker-volume/identity-server/site.css. Теперь если у нас будет выполнятся перезапуск платформы, файл site.css будет взят из каталога /docker-volume/identity-server/, который мы прописали в yml файле. После этого можно перезапускать платформу.

После обновления платформы, файл platfotm.yml будет новый и нам придётся только прописать строчку заново. Но это менее трудоёмко чем создание нового образа.

Related content

Пример настройки keycloak
Пример настройки keycloak
Read with this
Особенности обновления на версию 2.18
Особенности обновления на версию 2.18
More like this
FAQ
Read with this
Системные требования
Системные требования
More like this
Отключение компонентов
Отключение компонентов
Read with this
Системные требования
Системные требования
More like this