orientechnologies / orientdb-docker

OrientDB running in a docker container
MIT License
63 stars 63 forks source link

Permission Error with Orientdb on Openshift #55

Open p5cred opened 5 years ago

p5cred commented 5 years ago

I deployed an orientdb container onto openshift and am having an issue with opening the orient console. When I go into the bin folder within the orient container I run ./console.sh to start the orientdb console and I get this error:

bash-4.4$ ./console.sh Exception in thread "main" com.orientechnologies.common.exception.OSystemException: Cannot access to the input stream. Check permissions of running process at com.orientechnologies.common.console.TTYConsoleReader.(TTYConsoleReader.java:113) at com.orientechnologies.orient.console.OConsoleDatabaseApp.main(OConsoleDatabaseApp.java:168)

If anyone has had a similar issue to this or has any insight on how to resolve this issue any ideas would be appreciated.

Or if there needs to be more clarification on this question, please let me know. Thanks

clouds56 commented 5 years ago

The same error here. I'm using the Docker image here https://hub.docker.com/_/orientdb/ with tag latest (3.0.11).

If creating container with non-root user (pass -u 1000:1000), it would throw the same exception at the time running docker exec -it -u 1000:1000 <container_id> /orientdb/bin/console.sh)

clouds56 commented 5 years ago

After some investigating, I found that it would access home folder for history file. https://github.com/orientechnologies/orientdb/blob/3.0.11/core/src/main/java/com/orientechnologies/common/console/TTYConsoleReader.java#L550 You should make sure $HOME/.orientdb accessible

Or you could config system properties of JVM through docker's environment variables.

docker create/run -e JAVA_OPTS='-Duser.home=/orientdb/databases' [other options] orientdb

The folder /orientdb/databases and /orientdb/log are both acceptable while the former one is persist via volume, and the latter would be clear with the container.

There may some other issues related to permissions, one of them might be /orientdb/backup is owned by root:root by default. I think this is an issue of packaging prebuilt release.