SCope
SCope copied to clipboard
Deploying Docker files on a VM
Hi there,
thank you very much for developing SCOPE and making it available via so many different ways (macOS, linux, Windows, Docker).
I was trying to set up a SCOPE instance on a Ubuntu 20.04.2 LTS Virtual machine running Docker.
I did the following:
git clone https://github.com/aertslab/SCope.git
cd SCope
sudo docker-compose build --build-arg SCOPE_PORT=8080
The build worked without problems, but when I try the following:
sudo docker-compose up -d
I get the following error:
Removing scope_scope_1
Recreating d15c85bccfaa_scope_scope_1 ... error
ERROR: for d15c85bccfaa_scope_scope_1 Cannot start service scope: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"bash /app/start.sh\": stat bash /app/start.sh: no such file or directory": unknown
ERROR: for scope Cannot start service scope: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"bash /app/start.sh\": stat bash /app/start.sh: no such file or directory": unknown
ERROR: Encountered errors while bringing up the project.
I am not so familiar with docker-compose and have no starting point to troubleshoot this.
My final goal was to run SCope via Shinyproxy (https://shinyproxy.io/) and spin up containers for each user that wants to look at data.
Thanks for your help!
Florian
Hi Florian,
It looks like you're not defining the SCOPE_DATA_DIR when you run the docker-compose
command. You need to be running something like this line from the README: SCOPE_DATA_DIR=$HOME/scope_data SCOPE_PORT=8080 docker-compose up -d
, if you don't provide this environment variable, docker tries to bind a folder which doesn't exist.
To your second point about Shinyproxy, keep in mind that SCope is not a shiny app, nor is it even R code. I have never used Shinyproxy, but from a quick look at their website, it seems specific to R/Shiny apps.
SCope does allow multiple users to use the same instance, for example https://scope.aertslab.org/ . Users can get a 5 day session at will, or permanent sessions can be added to SCope (which don't expire) using the Permanent_Session_IDs.txt
file with a session name and ro/rw (depending on permissions wanted) seperated by a tab.
Hopefully this helps!
Cheers,
Kris
Hi @KrisDavie,
thank you for the quick reply, it is really appreciated!
In fact, I had tried the docker-compose command as shown in the README as well and it gives the same error. I just retried it, using exactly the same paths as you suggested (a folder called scope_data in my home) and I get the same error:
SCOPE_DATA_DIR=$HOME/scope_data SCOPE_PORT=8001 docker-compose up -d
Removing scope_scope_1
Recreating d15c85bccfaa_scope_scope_1 ... error
ERROR: for d15c85bccfaa_scope_scope_1 Cannot start service scope: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"bash /app/start.sh\": stat bash /app/start.sh: no such file or directory": unknown
ERROR: for scope Cannot start service scope: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"bash /app/start.sh\": stat bash /app/start.sh: no such file or directory": unknown
ERROR: Encountered errors while bringing up the project.
Do you have any other ideas what might be causing this issue while trying to up the docker?
Thank you again!
Regarding Shinyproxy: I understand that I can host Scope by itself and I might do that instead. The use of Shinyproxy was mainly because it is already set up and running on the VM. It can actually be used to host any type of Docker container, even those using docker-compose. I am using Shinyproxy to run different instances of CellXGene for example and it works great for that. It spins up an isolated container for each user that connects.
Hey @FloWuenne,
Ok, can you confirm that the folder $HOME/scope_data/
actually exists on the host system for the user that you're running the docker container with?
Can you also try starting the scope container manually, then entering it with docker exec -it scope bash
and then run ls /app/
in that shell? (instructions here: https://docs.docker.com/engine/reference/commandline/exec/)
Ah, interesting about shinyproxy, in that case it should work assuming you get a unique set of ports mapped to each instance (unless they have unique IP addresses).
Cheers,
Kris
Thanks again for the additional suggestions!
- The folder
$HOME/scope_data/
does exist and is accessible by the SCope user.
I tried running the container using:
sudo docker run scope_scope
however, the container started by this, seems to exit automatically, since it is only visible via sudo docker container ls -a
and shows as STATUS "exited".
I then tried:
sudo docker run --name scope_bash --rm -i -t scope_scope bash
and this did spin up a bash session inside the container.
Checking contents of /app then from inside the bash session:
sudo docker run --name scope_bash --rm -i -t scope_scope bash
(scope) root@0345dc80a7cc:/app/opt# ls /app/
AUTHORS VERSION config_devVM.json index.html scope-json-metadata.schema.json tutorials
CHANGELOG.md apache debian.json index.js scope-json-metadata.test.json webpack.config.js
Dockerfile assets docker-compose.host.yml node_modules scope_data
LICENSE bin docker-compose.yml opt src
README.md compile_proto.sh docs package-lock.json start.sh
Singularity config.json images package.json tsconfig.json
Hello,
I have the same issue.
I go inside the docker container and I try to start it with bash /app/start.sh
and I obtain:
[Errno 2] No such file or directory: b'/bin/alembic'
Studyfranco