Eris is a unique architecture which has taken a very useful advantage of containerizing the data, services - contracts, js, into separate container instances themselves. With the intent of running eris inside docker, I created a docker image using the instructions on 'Getting Started' into a Dockerfile. However, upon setting a CMD/ENTRYPOINT to the instruction, eris init, I cannot create a container instance using docker run -i -t --name test_eris . This makes sense, as the eris server is connecting to the docker daemon to pull images for eris-db, eris-keys, eris-actions, etc. My question around approach to run eris server within a container? 1. Install another docker-daemon inside the Dockerfile for the eris_image. However, this would create a container within container architecture. I suspect this might unnecessarily complicate a much desired laterally scalable architecture. Suggestions? 2. An alternate approach I can think of is building separate container images for eris-cli, eris-db, eris-keys, etc. using the Dockerfiles from eris-ltd github repo. If this were to be the approach, what are the recommendations to ensure that upon creating a private chain, eris can function as expected, with this customer container set up?
Eris is a cli tool focused on container orchestration for blockchainized applications. Normally we recommend it be installed on the host. It's certainly possible to run from inside docker but it will be much less convenient.
That said, we have images available for eris on quay.io. You can also pull the eris-cli repo and build the canonical dockerfile from there.
If you're building your own you will want to have
eris init as a RUN command in the dockerfile. The ENTRYPOINT should just be eris. Not eris init.
The easy way, though, to run eris from inside docker is below.
docker pull quay.io/eris/eris && docker run -v /var/run/docker.sock:/var/run/docker.sock ... quay.io/eris/eris erisCommand
Where ... are any other flags you need for your docker container.