Как включить специальный символ (например, '=') как часть значения переменной в файле docker-compose .env? - PullRequest
1 голос
/ 16 марта 2019

В соответствии с докерскими документами переменные среды в файле .env должны быть в формате key-val как VAR=VAL, который отлично работает для образца, подобного foo=bar, но без упоминания неизбежных специальных символов, например'=', что может ввести в заблуждение разделитель key-val ИЛИ space обе части действительной строки подключения БД, как в:

файле secrets.env:

 connectionString=Data Source=some-server;Initial Catalog=db;User ID=uid;Password=secretpassword

, который упоминается вСодержимое файла docker-compose.debug.yaml в виде:

services:
  some-service:
    container_name: "service-name"
    env_file:
      - secrets.env
    ports:
      - "80:80"

, которое дополнительно используется для преобразования в docker-compose.yaml, как показано в полном потоке ниже:

enter image description here

Итак, вопрос в том, как включить строку подключения, в которой = и Spaces являются частью значения?

Нужно - У нас мало микро-сервисы в решении VS и надеются избежать повторения одних и тех же строк подключения, в противном случае необходимо указать спецификацию службы `docker-compose.yaml '

Tried , включая значения в одинарных / двойных кавычках, но послепреобразование независимо от того, = рассматривается какзначение, включающее в себя кавычки, точно такие же, как для файла kubernets yaml

1 Ответ

1 голос
/ 16 марта 2019

Я выполнил тест без проблем:

$ cat .env
ENV=default
USER_NAME=test2
SPECIAL=field=with=equals;and;semi-colons

$ cat docker-compose.env.yml
version: '2'

services:
  test:
    image: busybox
    command: env
    environment:
      - SPECIAL

$ docker-compose -f docker-compose.env.yml up
Creating network "test_default" with the default driver
Creating test_test_1_55eac1c3767c ... done
Attaching to test_test_1_d7787ac5bfc0
test_1_d7787ac5bfc0 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
test_1_d7787ac5bfc0 | HOSTNAME=d249a16a8e09
test_1_d7787ac5bfc0 | SPECIAL=field=with=equals;and;semi-colons
test_1_d7787ac5bfc0 | HOME=/root
test_test_1_d7787ac5bfc0 exited with code 0
...