## Dockerfile for eth-net-intelligence-api (build from git). ## ## Build via: # # `docker build -t ethnetintel:latest .` # ## Run via: # # `docker run -v :/home/ethnetintel/eth-net-intelligence-api/app.json ethnetintel:latest` # ## Make sure, to mount your configured 'app.json' into the container at ## '/home/ethnetintel/eth-net-intelligence-api/app.json', e.g. ## '-v /path/to/app.json:/home/ethnetintel/eth-net-intelligence-api/app.json' ## ## Note: if you actually want to monitor a client, you'll need to make sure it can be reached from this container. ## The best way in my opinion is to start this container with all client '-p' port settings and then # share its network with the client. This way you can redeploy the client at will and just leave 'ethnetintel' running. E.g. with ## the python client 'pyethapp': ## # # `docker run -d --name ethnetintel \ # -v /home/user/app.json:/home/ethnetintel/eth-net-intelligence-api/app.json \ # -p 0.0.0.0:30303:30303 \ # -p 0.0.0.0:30303:30303/udp \ # ethnetintel:latest` # # `docker run -d --name pyethapp \ # --net=container:ethnetintel \ # -v /path/to/data:/data \ # pyethapp:latest` # ## If you now want to deploy a new client version, just redo the second step. FROM debian RUN apt-get update &&\ apt-get install -y curl git-core &&\ curl -sL https://deb.nodesource.com/setup | bash - &&\ apt-get update &&\ apt-get install -y nodejs RUN apt-get update &&\ apt-get install -y build-essential RUN adduser ethnetintel RUN cd /home/ethnetintel &&\ git clone https://github.com/cubedro/eth-net-intelligence-api &&\ cd eth-net-intelligence-api &&\ npm install &&\ npm install -g pm2 RUN echo '#!/bin/bash\nset -e\n\ncd /home/ethnetintel/eth-net-intelligence-api\n/usr/bin/pm2 start ./app.json\ntail -f \ /home/ethnetintel/.pm2/logs/node-app-out-0.log' > /home/ethnetintel/startscript.sh RUN chmod +x /home/ethnetintel/startscript.sh &&\ chown -R ethnetintel. /home/ethnetintel USER ethnetintel ENTRYPOINT ["/home/ethnetintel/startscript.sh"]