поддержка конфигурации времени выполнения admin-on-rest

Я создал образ докера (на основе официального образа nginx), чтобы обслуживать папку сборки, результат сборки пряжи. Моя проблема в том, что у меня есть уникальный образ, который можно использовать как в тестовой, так и в рабочей среде. Я не хочу иметь разные образы для каждой среды, вместо этого я хотел бы использовать конфигурацию запуска контейнеров, чтобы запустить мой контейнер с тестовой или рабочей конфигурацией. То есть какая-то конфигурация, отделенная от задачи сборки, которую можно применить поверх сборки.

Причина в том, что между двумя средами нет различий, за исключением моей внутренней конечной точки, которая используется моим собственным http-клиентом внутри приложения admin-on-rest.

Есть ли поддержка такой конфигурации или мне нужно реализовать что-то вроде этого ?

Спасибо


person Andrea Di Lisio    schedule 28.10.2017    source источник


Ответы (1)


Вы можете получить что-то подобное, добавив в свой образ новый скрипт, который обновляет адрес, используемый nginx:

#!/bin/bash

if [[ ! -z "$PROD" && "PROD" != '0' ]] ; then
    sed -i 's/address_in_file/test_env_address/g' /etc/nginx/conf.d/default.conf
else
    sed -i 's/address_in_file/prod_env_address/g' /etc/nginx/conf.d/default.conf
fi

nginx -g daemon off

Это не очень хорошее решение, но оно работает.

address_in_file — это текущий внутренний адрес, указанный в вашем файле конфигурации.

test_env_address — новый адрес, который должен появиться, если скрипт запускается с переменной окружения PROD = 0 (или вообще без PROD)

prod_env_address — производственный адрес

person Stefano    schedule 28.10.2017
comment
Да, это определенно может сработать, хотя и немного противно. Я предпочитаю этот подход описанному здесь. Интересно, есть ли другие варианты... если нет, я выберу тот, который вы предложили. Благодарность! - person Andrea Di Lisio; 28.10.2017
comment
ps: не используется nginx, а браузером (то есть содержится в файлах js) - person Andrea Di Lisio; 28.10.2017
comment
Если вы найдете другой подход, дайте мне знать, так как я использую что-то похожее и не очень этим горжусь. - person Stefano; 29.10.2017