Как исправить проблему с отказом в разрешении в скрипте точки входа - PullRequest
0 голосов
/ 23 апреля 2020

В Dockerfile у меня есть что-то вроде этого:

RUN mkdir -p /usr/local/nexus \
    && chown apps:users /usr/local/nexus

RUN touch /usr/local/nexus/peerid \
   && chown apps:users /usr/local/nexus/peerid

, а в скрипте ENTRYPOINT у меня есть что-то вроде этого:

cat /dev/null > /usr/local/nexus/peerid
echo $PEER_ID > /var/nexus/peerid

Но когда я запускаю контейнера, происходит сбой с ошибкой разрешения:

node1       | /usr/local/bin/start_app: line 60: can't create /usr/local/nexus/peerid: Permission denied

Я включил следующее, чтобы увидеть подробности разрешения

echo $(ls -lh /usr/local/nexus)
echo $(ls -lh /usr/local/nexus/peerid)
echo $(whoami)

И это распечатывается:

bootnode    | total 0 -rw-r--r-- 1 root root 0 Apr 22 22:45 peerid
bootnode    | -rw-r--r-- 1 root root 0 Apr 22 22:45 /usr/local/nexus/peerid
bootnode    | appuser

Как Насколько я вижу, когда я добавил каталог / файл в Dockerfile, я изменил пользователя, чтобы он не был root. Но все же в сценарии кажется, что файл все еще принадлежит root, следовательно, ошибка разрешения, которую я получил.

Где я ошибся? И как исправить? Спасибо

...