Когда я запускаю nexus3 в Docker-контейнере, я получаю следующие сообщения об ошибках.
$ docker run --rm sonatype/nexus3:3.8.0
Warning: Cannot open log file: ../sonatype-work/nexus3/log/jvm.log
Warning: Forcing option -XX:LogFile=/tmp/jvm.log
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to Permission denied
Unable to update instance pid: Unable to create directory /nexus-data/instances
/nexus-data/log/karaf.log (Permission denied)
Unable to update instance pid: Unable to create directory /nexus-data/instances
Указывает, что существует проблема с правами доступа к файлу.
Я использую Red Hat Enterprise Linux 7.5 в качестве хоста и самую последнюю версию докера.
На другой машине (Ubuntu) работает нормально.
Проблема возникает в постоянном томе (/ nexus-data). Однако я не монтирую конкретный том и разрешаю докеру использовать анонимный том.
Если я сравниваю тома на обеих машинах, я вижу следующие разрешения:
Для Red Hat, где он не работает, принадлежит root.
$ docker run --rm sonatype/nexus3:3.8.0 ls -l /nexus-data
total 0
drwxr-xr-x. 2 root root 6 Mar 1 00:07 etc
drwxr-xr-x. 2 root root 6 Mar 1 00:07 log
drwxr-xr-x. 2 root root 6 Mar 1 00:07 tmp
В Ubuntu, где он работает, он принадлежит Nexus. Nexus также является пользователем по умолчанию в контейнере.
$ docker run --rm sonatype/nexus3:3.8.0 ls -l /nexus-data
total 12
drwxr-xr-x 2 nexus nexus 4096 Mar 1 00:07 etc
drwxr-xr-x 2 nexus nexus 4096 Mar 1 00:07 log
drwxr-xr-x 2 nexus nexus 4096 Mar 1 00:07 tmp
Смена пользователя с помощью опций -u не является опцией.