Название как бы подводит итог. Dockerfile находится ниже. Других ошибок в сборке у меня нет. Команда docker run выводит Error initializing
, показанный ниже, когда я устанавливаю пользователя в хранилище перед ENTRYPOINT
.
- Если я закомментирую
USER vault
, сервер запускается без ошибок. - Если я удалю параметр -dev на
vault server
, но оставлюUSER vault
, сервер запустится без ошибок.
Что он ищет в / dev / null или почему ищет там? Я не могу найти никаких ссылок на / dev / null в любом связанном поиске в Google.
> docker build -t vault-deploy .
> docker run --rm -it --cap-add=IPC_LOCK -p 127.0.0.1:8200:8200 vault-deploy
Api Address: http://0.0.0.0:8200
Cgo: enabled
Cluster Address: https://0.0.0.0:8201
Listener 1: tcp (addr: "0.0.0.0:8200", cluster address: "0.0.0.0:8201", max_request_duration: "1m30s", max_request_size: "33554432", tls: "disabled")
Log Level: trace
Mlock: supported: true, enabled: false
Storage: file
Version: Vault v0.11.0
Error initializing Dev mode: open /dev/null/.vault: not a directory
vault-dev-config.hcl:
storage "file" {
path = "/var/vault/data"
}
(Я получаю такое же поведение, если использую storage "inmem" {}
или просто позволяю ему использовать конфигурацию по умолчанию.)
Dockerfile:
FROM [INTERNAL DOCKER IMAGE REPOSITORY]/alpine-python3
# Vault is in the testing repository, edge branch.
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
# - - - - - - - - - - - - - - - - - - - - - - - -
# Container packages.
# libcap: For the setcap executable.
# - - - - - - - - - - - - - - - - - - - - - - - -
RUN apk update \
&& apk --no-cache add -u vault \
&& apk add --update libcap \
&& rm -rf /var/cache/apk/*
# - - - - - - - - - - - - - - - - - - - - - - - -
# Execution configuration.
# - - - - - - - - - - - - - - - - - - - - - - - -
# We won't run as root.
RUN mv /usr/sbin/vault /usr/bin
RUN chown vault /usr/bin/vault
# Make sure the vault executable can run mlock to prevent swapping to disk. We
# also have to run the container with --cap-add=IPC_LOCK.
RUN setcap cap_ipc_lock=+ep $(readlink -f /usr/bin/vault)
# - - - - - - - - - - - - - - - - - - - - - - - -
# Create and set ownership of /var/vault.
# Only needed if we're putting a file storage back end here.
# - - - - - - - - - - - - - - - - - - - - - - - -
RUN mkdir /var/vault
RUN chown -R vault:vault /var/vault
# - - - - - - - - - - - - - - - - - - - - - - - -
# Create, populate and set ownership of /etc/vault.
# - - - - - - - - - - - - - - - - - - - - - - - -
RUN mkdir /etc/vault
COPY vault-dev-config.hcl /etc/vault/vault-dev-config.hcl
RUN chmod 600 /etc/vault/vault-dev-config.hcl
RUN chown -R vault:vault /etc/vault
# - - - - - - - - - - - - - - - - - - - - - - - -
# Prepare for launch.
# - - - - - - - - - - - - - - - - - - - - - - - -
USER vault
#Error initializing Dev mode: open /dev/null/.vault: not a directory
ENTRYPOINT vault server \
-dev \
-log-level trace \
-dev-listen-address 0.0.0.0:8200 \
-config /etc/vault/vault-dev-config.hcl