В 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, следовательно, ошибка разрешения, которую я получил.
Где я ошибся? И как исправить? Спасибо