Как правило, вы так не делаете. Типичные образы Docker содержат только сервер, на котором они работают, и некоторые основные инструменты, но сетевые клиенты, такие как ssh
или curl
, как правило, не являются частью этого. В частном случае ssh
безопасное управление требуемыми учетными данными также сложно (не невозможно, но не очевидно).
В вашем конкретном случае я мог бы изменить порядок вещей, чтобы в ваших сценариях не было сложного предположения, что база данных работает локально. Подготовьте пустой контейнер базы данных, затем запустите сценарий с хоста , нацеленного на эту пустую базу данных. Может даже работать, чтобы переменные окружения PGHOST
и PGPORT
указывали на имя хоста вашего хоста и порт, на котором вы публикуете интерфейс базы данных, а затем запускали этот скрипт без изменений.
Если присмотреться к этой конкретной команде, вам также может быть лучше настроить задание cron для запуска этого конкретного дампа базы данных и размещения содержимого где-нибудь. Затем разработчик может получить снимок данных, не подключаясь к работающему серверу базы данных, и вы можете ограничить число людей, которые будут иметь доступ. Если у вас есть этот файл дампа, вы можете использовать механизм /docker-entrypoint-initdb.d
для его загрузки при первом запуске.