У меня есть пакет программного обеспечения (веб-сервер узла, база данных, другие инструменты), который я разрабатываю внутри корпоративного брандмауэра, встраиваю в образы докеров и развертываю с помощью docker-compose. Чтобы фактически установить все программное обеспечение в образы, мне нужно настроить среду для использования сетевого прокси, а также отключить строгую проверку SSL (поскольку брандмауэр включает проверку ssl) не только с точки зрения переменных среды, но и для npm
, apt
и так далее.
У меня все это работает, так что я могу создавать в брандмауэре и развертывать в брандмауэре, а также настроил свои файлы Dockerfile и скрипты сборки, чтобы включение всех элементов конфигурации прокси/ssl зависело от докера --build-arg
, который устанавливает среду переменная через ENV enable_proxies=$my_build_arg
, так что я также могу просто пропустить всю эту конфигурацию для сборки и развертывания за пределами брандмауэра.
Однако мне нужно иметь возможность создавать все внутри брандмауэра и развертывать за его пределами. Это означает, что все прокси-компоненты должны быть включены во время сборки (чтобы все программные пакеты могли быть установлены), если указан соответствующий --build-arg
, а затем отдельно либо включен, либо отключен во время выполнения с помощью --env enable_proxies=true
или чего-то подобного.
Я все еще относительно новичок в некоторых аспектах Docker, но я понимаю, что единственное, что выполняется при запуске образа, — это содержимое записи CMD
в Dockerfile, и что CMD
может выполнять только одну команду.
Кто-нибудь знает, как я могу/должен разделять настройки прокси/ssl во время сборки и выполнения, как это?