как установить разрешения для кэширования и записи Symfony Docker-контейнера - PullRequest
0 голосов
/ 28 марта 2019

У меня есть Dockerfile для моего приложения Symfony, но контейнер не имеет разрешения на запись в кеш и каталоги журналов.

Я пытался с документами Symfony для разрешений, но это не работает.Я уже установил пользователя контейнера как root, но проблема та же.

Вот мои Dockerfile:

FROM trafex/alpine-nginx-php7:ba1dd422

RUN apk --update add git php7-sockets php7-bcmath php7-pdo_mysql php7-pdo && rm /var/cache/apk/* \
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf

COPY . /var/www/html

RUN composer install \
     --ignore-platform-reqs \
        --no-interaction \
        --no-plugins \
        --no-scripts \
        --prefer-dist

EXPOSE 8080

Как мне установить правильные разрешения для его запуска?

1 Ответ

3 голосов
/ 28 марта 2019

Из Dockerfile образа докера кажется, что пользователь, использующий как NGINX, так и PHP-FPM, имеет значение nobody.

Так что вы должны иметь возможность заставить все это работать, предоставив этому пользователю права на эти файлы

FROM trafex/alpine-nginx-php7:ba1dd422

RUN apk --update add git php7-sockets php7-bcmath php7-pdo_mysql php7-pdo && rm /var/cache/apk/* \
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf

COPY . /var/www/html
RUN chown -R nobody:nobody /var/www/html

RUN composer install \
     --ignore-platform-reqs \
        --no-interaction \
        --no-plugins \
        --no-scripts \
        --prefer-dist

EXPOSE 8080

Но еще лучше , вы должны использовать тот же синтаксис, что и , который они используют в исходном изображении

FROM trafex/alpine-nginx-php7:ba1dd422

RUN apk --update add git php7-sockets php7-bcmath php7-pdo_mysql php7-pdo && rm /var/cache/apk/* \
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

COPY ./docker/nginx/nginx.conf /etc/nginx/nginx.conf

COPY --chown=nobody . /var/www/html

RUN composer install \
     --ignore-platform-reqs \
        --no-interaction \
        --no-plugins \
        --no-scripts \
        --prefer-dist

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