Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2nd server, alternative to docker in docker #372

Open
coreyryanhanson opened this issue Dec 15, 2021 · 5 comments
Open

2nd server, alternative to docker in docker #372

coreyryanhanson opened this issue Dec 15, 2021 · 5 comments

Comments

@coreyryanhanson
Copy link

I've been having trouble getting the containers to work using rootless podman instead of docker. It has no response when trying to connect to those ports via localhost and it makes me think the nested setup is missing the network privileges needed.

Is there any possibility of running the second instance of the image needed for AccessMod in the same pod and/or docker compose YML? Has anyone successfully done this with this particular app?

@fxi
Copy link
Collaborator

fxi commented Dec 15, 2021

Hi,

I never tried rootless podman. Can you explain your use case a little bit more ?

AccessMod Docker is not yet officially supported. Hopefully, this will be the case soon :) For now, we are still in a pre release stage. Not well tested.

At this stage, it runs as a single container. Some weeks ago, it was working in two containers ( same image, two entry points ), but I had to change that back. The only case where there is a nested virtualisation is with our VirtualBox VM, but it's not related to your issue I think.

What version of AccessMod you want to try ?

If you want to try the latest version, look at this docker-compose ( used for development ) from the docker-main branch :

https://github.com/fxi/AccessMod_shiny/blob/docker_main/docker-compose.yml

Port 3xxx = app
Port 5xxx = http ( for async operations )

@coreyryanhanson
Copy link
Author

Ah ok. I was trying to use that one, but got thrown off by seeing /var/run/docker.sock:/var/run/docker.sock in the YML along with the disclaimer. I didn't realize it was only for the VM builds. Something else must be causing the network issues. I will have to examine more fully.

My use case is using it as an additional tool for feature discovery. I wanted to stick to the containers to remove the extra overhead of the VM, change the default port, and better access the underlying containers. Podman is just a personal choice due to how it works and the direction it's heading. Usually I can figure out what is wrong get everything working in it sooner or later. Looking forward to the release.

@fxi
Copy link
Collaborator

fxi commented Dec 16, 2021

Yep, docker socket bind is used by the secondary http service for update checking. Not mandatory.

I was able to launch AccessMod using podman this way:

podman run -dt -p 8080:3000 --network bridge docker.io/fredmoser/accessmod:5.7.17 

image

@coreyryanhanson
Copy link
Author

Thank you! All of the information you provided has me helped a ton finding where my problem was. I have it working perfectly now.

@fxi
Copy link
Collaborator

fxi commented Dec 16, 2021

Great.

BTW, It's still not ready to be used online "as is", if it's your goal. It's more a single user desktop app with a web front end.

  • Shiny + R on a single thread, no concurrency + all computations are blocking.
  • GRASS session store its settings in the same environment as the R process. It's not scoped.

The only way to make it "multi user" would be to start a container per user, which is a poor ressource allocation. My plan was to build a jobs based app, with a configuration front end and a shared computation backend, but that project has been rejected for various reason.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants