Используйте секреты докера на докер-машине - PullRequest
0 голосов
/ 15 апреля 2019

У меня возникла проблема при попытке использовать секреты докера на удаленном хосте, который я создал с помощью docker-machine.

Ниже мой докер-compose.yml:

version: "3.5"

services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
    secrets:
      - db_root_password

secrets:
  db_root_password:
    file: ./db_root_password.txt

Это хорошо работает локально, я могу запустить docker-compose и получить доступ к контейнеру mysql.

docker-compose up

Хорошо применяется пароль root.

Я сейчас пытаюсь запустить контейнер на удаленном хосте, который я создал, используя docker-machine.

Сначала я создал машину с помощью docker-machine create (в данном случае, в exoscale cloud)

docker-machine create --driver exoscale  ... MyMachine

Затем я попытался развернуть хост, используя:

eval $(docker-machine env MyMachine)
docker-compose up

Однако, когда я пытаюсь запустить на удаленном хосте, я получил следующую ошибку:

ERROR: for mysql  Cannot create container for service mysql: invalid mount config for type "bind": bind source path does not exist: /Users/user/path/to/db_root_password.txt

Так что он все еще пытается загрузить секрет с путем локального файла на моем локальном компьютере. Как я могу использовать этот секрет на удаленном хосте?

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 15 апреля 2019

Похоже, тур-докер не может найти ./db_root_password.txt

Можете ли вы попытаться создать файл db_root_password.txt внутри докера по тому же пути?

...