Доброго времени суток.
Задача: править конфигурационный файл (замена с помощью 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... но тоже такое себе %)