Реализовал докер-проект для автоматической настройки. Я использую docker 1.9 на сервере Ubuntu и использую функцию build-arg
. Я использую его для установки динамического поддомена в файле виртуальных хостов apache.
docker build --no-cache --build-arg domain=demo1.myapp.com -t imagename .
docker run -d -p 8080:80 imagename
Я использую домен и заменяю его в файле виртуальных хостов с помощью команды sed в моем файле сценария.
sed -i -e "s/defaulthost.com/$domain/g" /etc/apache2/sites-enabled/myApp.conf
В моем Dockerfile был код
ARG domain
RUN /bin/sh /script.sh $domain
Теперь мне нужно перенести приложение на AWS, где я получаю Amazon Linux AMI. Но здесь я получаю поддерживаемый докер версии 1.7, который не поддерживает build-arg
. Я пытался обновиться, но меня блокируют многие зависимости.
Теперь я решил использовать переменные среды ENV, как показано ниже.
docker run -d -p 8080:80 -e domain=demo1.myapp.com
Я также изменил файл Docker, например
В моем Dockerfile был код
RUN /bin/sh /script.sh
Но похоже, что они не работают в моем сценарии, поскольку во время сборки сценарий sed заменяет пустое значение в файле apache, и процесс сборки не удался.
Если это невозможно без аргумента сборки или я неправильно устанавливаю / использую ENV