docker -compose 3.2+ операторов связывания не работает с переменными окружения - PullRequest
0 голосов
/ 14 июля 2020

У меня есть env-файл userid.env, определяющий переменную «userid», которую я затем пытаюсь использовать в операторе связывания. Конфигурация docker -compose показывает, что идентификатор пользователя не вводится в оператор привязки. Предложения?

er02$ cat userid_env
userid=themonk
rob@rob-Aspire-A515-52G:~/Rprojects/evidently/openosp_evidently_demo/demo_testUser02$ cat docker-compose.yml
---
version: "3.2"

services:
  evidently:
    image: evidentlyslocker/evidently_sillydemo:latest
    env_file:
      - userid_env
    volumes:
      - type: bind
        source: /home/jenkins/workspace/${userid}/test
        target: /data
        read_only: true
rob@rob-Aspire-A515-52G:docker-compose config
WARNING: The userid variable is not set. Defaulting to a blank string.
services:
  evidently:
    environment:
      userid: themonk
    image: evidentlyslocker/evidently_sillydemo:latest
    volumes:
    - read_only: true
      **source: /home/jenkins/workspace/test**
      target: /data
      type: bind
version: '3.2'


Желаемый результат - это оператор привязки, который включает переменную идентификатора пользователя, например:

тома: - type: bind source: / home / jenkins / workspace / themonk / test target: / data read_only: true

1 Ответ

0 голосов
/ 15 июля 2020

Этот вопрос связан с этой веткой: https://github.com/docker/compose/issues/6581

cat userid.env
userid=themonk

так:

eval $(egrep -v '^#' ./*.env | xargs) docker-compose config

дает:

services:
  evidently:
    image: evidentlyslocker/openosp_evidently_sillydemo:latest
    volumes:
    - read_only: true
      source: /home/jenkins/workspace/themonk/test
      target: /data
      type: bind
version: '3.2'

По-прежнему не очевидно, почему я не могу сделать это напрямую, но это работает и работает надежно.

...