Как скрыть Mysql пароль в docker -компоненте, используя env_file - PullRequest
0 голосов
/ 18 апреля 2020
version: '3'

services:
  db:
    image: "mysql:5.7"
    volumes:
      - data-mysql:/var/lib/mysql

    ports:
      - '3306:3306'

    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

volumes:
  data-mysql:
    driver: local

Спасибо, Мэнни

1 Ответ

2 голосов
/ 18 апреля 2020

Нет необходимости в файле env. Если вы используете только имя переменной в определении docker compose environment, ее значение будет автоматически перенесено с вашего хоста в контейнер:

services:
  db:
    image: "mysql:5.7"
    ports: ['3306:3306']
    environment:
      MYSQL_ROOT_PASSWORD: 

Из документации :

Переменные среды, имеющие только ключ, преобразуются в их значения на компьютере, на котором работает Compose, что может быть полезно для секретных или заданных хостом c значений.

Если по какой-то причине вы хотите или должны использовать файл env, вы также можете:

services:
  db:
    image: "mysql:5.7"
    ports: ['3306:3306']
    env_file:
    - production.env

и в своем файле production.env (или как вы его называете) просто поставить строки key=value:

MYSQL_ROOT_PASSWORD=7op-s3cr37

См. Также Параметр конфигурации «env_file» .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...