Как установить переменную окружения для пользователя без полномочий root с помощью docker-compose? - PullRequest
1 голос
/ 21 марта 2019

Это работает (установите PERL5LIB для пользователя root):

test:
        image: httpd
        environment:
            - PERL5LIB=/somedir
        command:
            - bash
            - -c
            - |
                perl -le 'print for @INC'

Это тоже (установите PERL5LIB для пользователя daemon):

test:
        image: httpd
        user: daemon
        environment:
            - PERL5LIB=/somedir
        command:
            - bash
            - -c
            - |
                perl -le 'print for @INC'

(запуск command: от пользователя daemon)

Но проблема возникает, когда я запускаю процесс переднего плана в контейнере Docker от пользователя root, но запускаю процесс от пользователя без полномочий root. Например. httpd не запускается из-под root, по умолчанию для пользователя httpd-foreground установлено значение daemon.

Я попытался установить PERL5LIB глобально, используя /etc/profile и /etc/environment, но ни один из вариантов не сработал:

services:
    test:
        image: httpd
        command:
            - bash
            - -c
            - |
                echo 'export PERL5LIB=/somedir' >> /etc/profile
                perl -le 'print for @INC'
services:
    test2:
        image: httpd
        command:
            - bash
            - -c
            - |
                echo 'PERL5LIB="/somedir"' >> /etc/environment
                perl -le 'print for @INC'

(нет /somedir на выходе)

Как установить PERL5LIB для daemon пользователя без запуска command: от daemon пользователя?

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