Чтобы разработать Vault, работающий в контейнере, вам нужно создать файл конфигурации для Vault, который содержит что-то похожее на это (код Chef / Ruby):
config_content = %(
"storage": {
...
},
"default_lease_ttl": "768h",
"max_lease_ttl": "8766h",
"listener": [
{"tcp": {
"address": "0.0.0.0:8200",
"tls_disable": 0,
"tls_cert_file": "/vault/certs/my-cert-combined.pem",
"tls_key_file": "/vault/certs/my-cert.key"
}}],
"log_level": "info"
)
Особенно часть слушателя.Сделайте свое внутреннее хранилище тем, что вы хотите использовать (не по умолчанию для Dev в памяти!).
Обратите внимание, что вам потребуется получить действительный сертификат и его закрытый ключ также в томе, связанном с контейнером.
Сохраните этот файл конфигурации в каталоге, который связан внутри контейнера с путем / хранилище / config.Я использую / var / vault / config на моем хосте.Например (больше Ruby / Chef):
docker_container 'vault' do
container_name 'vault'
tag 'latest'
port '8200:8200'
cap_add ['IPC_LOCK']
restart_policy 'always'
volumes ['/var/vault:/vault']
command 'vault server -config /vault/config'
action :run_if_missing
end
Эта команда говорит Vault искать в / vault / config, и она должна найти там ваш файл конфигурации с расширением .json.Обратите внимание, что важно иметь адрес слушателя конфигурационного файла-> tcp-> 0.0.0.0, а не 127.0.0.1, потому что Vault не будет правильно разрешать внешний доступ.
Затем Vault запустится с шифрованием TLS для всех транзакций.Определите VAULT_ADDR, чтобы иметь https://your -host.com: 8200 , и все - и все.