OPENDAP / hyrax-docker

GNU Lesser General Public License v3.0
22 stars 12 forks source link

BESCatalogDirectory - root directory /usr/share/hyrax does not exist #28

Closed albertotb closed 4 years ago

albertotb commented 4 years ago

When I run:

docker run --volume /home/user:/usr/share/hyrax opendap/hyrax

I get the following error:

############################## HYRAX ##################################
Greetings, I am root.
SERVER_HELP_EMAIL is not_set
FOLLOW_SYMLINKS is not_set
Found exisiting NCWMS_BASE: https://localhost:8080
Starting the BES
Caught plugin exception during initialization of csv module:
    BESCatalogDirectory - root directory /usr/share/hyrax does not exist
Could not initialize the modules to get the log contexts.
Caught plugin exception during initialization of csv module:
    BESCatalogDirectory - root directory /usr/share/hyrax does not exist
The beslistener status is not 'BESLISTENER_RUNNING' (it is '24747808')  the master pid was not changed.
besdaemon: server cannot mount at first try (core dump). Please correct problems on the process manager /usr/bin/beslistener
BES PID file exists but process not running, cleaning up
FAILED: The BES daemon did not appear to start

I don't understand how this is possible, if I extract the container filesystem I can see that there is a directory called /usr/share/hyrax. Removing the -volume flag works fine, but then I cannot serve my data.

gajowi commented 4 years ago

Is the problem that the direction cannot be read/accessed (and the error message is close but not quite right)?

Gareth

On Mon, 22 Jun 2020, 11:17 pm Alberto Torres, notifications@github.com wrote:

When I run:

docker run --volume /home/user:/usr/share/hyrax opendap/hyrax

I get the following error:

############################## HYRAX ################################## Greetings, I am root. SERVER_HELP_EMAIL is not_set FOLLOW_SYMLINKS is not_set Found exisiting NCWMS_BASE: https://localhost:8080 Starting the BES Caught plugin exception during initialization of csv module: BESCatalogDirectory - root directory /usr/share/hyrax does not exist Could not initialize the modules to get the log contexts. Caught plugin exception during initialization of csv module: BESCatalogDirectory - root directory /usr/share/hyrax does not exist The beslistener status is not 'BESLISTENER_RUNNING' (it is '24747808') the master pid was not changed. besdaemon: server cannot mount at first try (core dump). Please correct problems on the process manager /usr/bin/beslistener BES PID file exists but process not running, cleaning up FAILED: The BES daemon did not appear to start

I don't understand how this is possible, if I extract the container filesystem I can see that there is a directory called /usr/share/hyrax. Removing the -volume flag works fine, but then I cannot serve my data.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/OPENDAP/hyrax-docker/issues/28, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUSKFKH3YXAOR2JYKVJND3RX5KVLANCNFSM4OESVGXA .

albertotb commented 4 years ago

Do you mean /usr/share/hyrax? it should be accessible, I'm using the official opendap/hyrax:latest image, I'm not building it myself

If you ment /home/user what permissions does it need? It belongs to the docker group and to the user running the container. I also tried with several directories with no luck

ndp-opendap commented 4 years ago

I think that /home/user needs to be mounted with read permission for the "bes" user. Adding the permissions to the volume command like this: --volume /home/user:/usr/share/hyrax:ro Might be the thing.

albertotb commented 4 years ago

I tried adding the permissions but I'm getting the same error. I'm a little bit confused, the 'bes' user lives in the container, how would /home/user, a directory located in the host machine, know about the "bes" user? Maybe I'm missing something

On Tue, 23 Jun 2020 at 20:20, Nathan Potter notifications@github.com wrote:

I think that /home/user needs to be mounted with read permission for the "bes" user. Adding the permissions to the volume command like this: --volume /home/user:/usr/share/hyrax:ro Might be the thing.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/OPENDAP/hyrax-docker/issues/28#issuecomment-648334348, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABRWQAU2Y4RUYIJFHAGRGFLRYDW5LANCNFSM4OESVGXA .

ndp-opendap commented 4 years ago

The bes user is not known to your system, but what you can do is use the user and/or group IDs of the BES user by number. In the Docker container you can see in /etc/passwd the bes user entry:

bes:x:999:997:BES daemon:/var/log/bes:/sbin/nologin

So what you can do on your system would be:

chown -R 999:997 /home/user

If that's too heavy handed you could just do the group, assuming you also set all the things to be group readable:

chgrp -R /home/usr
chmod -R g+r /home/user

Does that make sense?

albertotb commented 4 years ago

I just tried in a fresh VM and everything works fine. Clearly is an OS related problem, but a very strange one. If I can reproduce it again I will try your suggestion and report back here.

ndp-opendap commented 4 years ago

I will close this for now if the problem reappears please let us know!