chmod работает неправильно в команде RUN Dockerfile. Правильно отображается во время сборки, но, похоже, не прилипает - PullRequest
0 голосов
/ 17 января 2020

Используя следующий файл dockerfile, я пытаюсь создать папку, доступную для записи для PHP.

FROM trafex/alpine-nginx-php7:1.2.0

# Add mysql pdo extensions
USER root
RUN apk add php7-pdo php7-pdo_mysql

COPY --chown=nobody:nobody nginx.conf /etc/nginx/nginx.conf
COPY --chown=nobody:nobody public_html/  /var/www/html

RUN chmod 777 /var/www/html/public/ifpos/hits && ls -l /var/www/html/public/ifpos/

USER nobody

Во время сборки это то, что я вижу

Step 6/7 : RUN chmod 777 /var/www/html/public/ifpos/hits && ls -l /var/www/html/public/ifpos/
 ---> Running in 027345f34fc9
total 8
drwxrwxrwx    2 nobody   nobody        4096 Jan 17 04:21 hits
-rw-r--r--    1 nobody   nobody         817 Jan 17 03:04 listener.php

Однако, когда я подключаюсь к контейнеру и выводу список каталогов, я вижу, что это было установлено неправильно.

/var/www/html/public/ifpos $ ls -l
total 8
dr-xr-xr-x    2 nobody   nobody        4096 Jan 17 04:21 hits
-rw-r--r--    1 nobody   nobody         817 Jan 17 03:04 listener.php

Пожалуйста, помогите, это делает мою голову!

1 Ответ

1 голос
/ 17 января 2020

Это происходит потому, что /var/www/html помечен как VOLUME в trafex/alpine-nginx-php7:1.2.0 изображении - https://hub.docker.com/r/trafex/alpine-nginx-php7/dockerfile

Вы можете запустить chmod как часть сценария точки входа, который выполняет chmod сначала и затем вызывает фактическую точку входа "/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"

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