Команда запуска docker-compose для установки переменной env - PullRequest
0 голосов
/ 04 октября 2018

Я создал контейнер, способный установить uid моего пользователя с хоста, когда пользователь запускает Apache для этого контейнера.Таким образом, я могу поделиться своим каталогом без каких-либо проблем с разрешениями.
Я использую переменную окружения "CONTAINER_USER_UID", чтобы связать этого пользователя.Поэтому я установил эту переменную с результатом id -u.

Я пытался добавить `id -u` как значение в файл docker-compose, но он не работает ...

version: '3'

services:
  members:
    image: olive007/ubuntu-php-apache:18.04-7.2-2.4
    environment:
      CONTAINER_USER_UID: `id -u`
      CONTAINER_USER_GID: `id -g`
    ports:
      - "80:80"
    volumes:
      - ./laravel:/var/www/html

Я получил эту ошибку:

ОШИБКА: yaml.scanner.ScannerError: при сканировании следующего токена
найден символ '`', который не может запустить любой токен

Кто-нибудь знает, как установить переменную окружения с помощью результата выполнения команды на хосте?

Извините за мой английский, я его изучаю ...

1 Ответ

0 голосов
/ 04 октября 2018

Вы не можете запускать команды bash из файла yml.Используйте docker-compose подстановку переменной среды :

docker-compose.yml

version: '3'

services:
  members:
    image: olive007/ubuntu-php-apache:18.04-7.2-2.4
    environment:
      CONTAINER_USER_UID: ${HOST_UID}
      CONTAINER_USER_GID: ${HOST_GID}
    ports:
      - "80:80"
    volumes:
      - ./laravel:/var/www/html

И затем запустите службу как:

export HOST_UID=`id -u`
export HOST_GID=`id -g`
docker-compose up
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...