Каков наилучший способ установки основных конфигураций в контейнере докеров во время выполнения? Я пробовал несколько подходов, но я не уверен в каждом из них.Как отправить конфигурацию в контейнер для докеров?
Задайте конфигурацию с помощью переменной окружения. Пример:
docker run -d -t -e HOST=www.example.com my_image my_script
Задайте конфигурацию с помощью аргументов командной строки, установив ENTRYPOINT в файле Docker в команду, которую я хочу запустить, и давая CMD переопределить аргументы, которые я передаю при вызове docker. Пример:
docker run -d -t my_image my_script --host=www.example.com
Настройка аргументов командной строки и переменные окружения примерно одинаковы в простоте использования для меня. Есть ли у кого-либо большие преимущества или недостатки любого подхода? Мой ENTRYPOINT/CMD в контейнере докера является скриптом python. Моя единственная мысль заключается в том, что при запуске моего скрипта вне контейнера докеров несколько проще использовать аргументы командной строки, а не переменные среды, но это в основном личные предпочтения.
Dockerfile:
FROM ubuntu:xenial
RUN apt-get update -y
RUN apt-get install -y python3-pip python3.5 build-essential
COPY . /app
WORKDIR /app
ENTRYPOINT ["python3"]
CMD ["-h"]
Ах да, я не хотел проходить все способы отправки конфигурации. Я просто искал лучший способ настройки контейнера, если у вас есть только несколько простых конфигураций. Я знаю, что есть другие способы, такие как установка тома, использование --env_file, загрузка конфигураций из внешнего хранилища ключей/значений или базы данных. Я читал статьи, которые советуют не устанавливать громкость для загрузки конфигурационного файла, потому что тогда вам придется поместить файл конфигурации в вашу хост-систему в дополнение к потянув изображение докера. – mpl
Got ya. Тогда у меня будет команда RUN, что echo - это конфигурация, которую вы хотите (или аналогичная команда) в нужном файле. – PolarisUser