@Shesoff
тамагочи из 90'ых

Как редактировать файла в docker образе перед его исполнением?

Доброго времени суток.
Задача: править конфигурационный файл (замена с помощью sed) перед запуском контейнера.
Суть: есть docker image представляющий из себя собранное ангуляровское приложение c определенным base-href. Имадж универсальный и раскатывается в купе с другими с помощью docker-compose объединяя несколько UI и кучу микросервисов для бека. Так как раскатка происходит у на разных площадках возникла необходимость выкатывать это с другим base-href из вариантов просто пересобрать контейнер под площадку, но так как это не по канону решили менять base-href в index.html, перед запуском. Вот все бы ничего но ничего кроме command для этих целей не нашел и код стал выглядить ужасно
ui-app1:
    image: harbor.example.local/project/gui/ui-app1:1.0.3
    ports:
      - "8981:80"
    network_mode: "bridge"
    command: >
      sh -c "sed -i -E 's|/test/|/public/test/|' /usr/share/nginx/html/ui-app1/index.html &&
      nginx -g 'daemon off;'"
    volumes:
      - type: bind
        source: ./ui-app1/default-area1.conf
        target: /etc/nginx/conf.d/default.conf
    depends_on:
      - haproxy


Отсюда вопрос, есть другое, более красивое решение?
Пока писал на ум пришла идея сборки нового образа на основе текущего (просто копирую содержимое /usr/share/nginx/html/ и затем правя index.html... но тоже такое себе %)
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 1
@de1m
Ну это разве ужасно, ужасно это когда в команде пять строк комманд.
А вообще, если образ ваш, то сделайте переменную, чтобы в ней делать изменения. Если же образ не ваш, то тогда только командами, можно ещё примонтировать скрипт и командой выполнять его.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы