Hi all,
I have been playing with docker containers, and Dockerfile.
Inspired by previous containers for Eiffel available on the docker hub (from Olivier Ligot, Carlo Bellettini, Jumanjiman, nacyot, ...)
They are available under
Especially
- "latest" or "15.08" which is a debian machine with latest official release of EiffelStudio (15.08 for now)
- "15.11-dev" which is a debian machine with latest "dev" release of EiffelStudio (15.11.98046 for now)
- "latest" from container "eiffel/eiffel:latest" and additional tools like tmux, subversion, git, vim, ...
- "trunk" from container "eiffel/eiffel:dev" , similar to eiffel/dev:latest except it checkouts the eiffelstudio source code (trunk), and set EIFFEL_SRC, and ISE_LIBRARY accordingly.
- "latest": from eiffel/dev:trunk container, its compiles an iron repository server, and run it listening on port 9090. It also provides via $HOME/iron/scripts/iron_fill_trunk.sh a way to upload iron packages from the EiffelStudio source code (trunk) into that local iron server.
- "with_trunk_packages": from eiffel/iron:latest container, it uploads iron package from $EIFFEL_SRC to the local iron repository server.
So for instance on Linux, you can use the iron server with:
> sudo docker run -t -i --rm --name my-iron-node -p 9090:9090 eiffel/iron
The first time, docker will download the various layers, and it may takes some time, depending on your Internet connection, and then it is much faster.
Or just EiffelStudio with
> sudo docker run -t -i --rm -p 9090:9090 -e=DISPLAY -v /tmp.X11-unix:/tmp/.X11-unix eiffel/iron estudio
(make sure your linux X11 display is available for others)
Under Windows, thanks to the Docker-toolbox, it is also possible to test those containers:
The commands are quite similar, from the docker quickstart terminal
> docker run -t -i --rm --name my-iron-node -p 9090:9090 eiffel/iron
But instead of browsing
http://localhost:9090/ you need to use the IP of the virtual machine use by the docker toolbox to run docker on Windows. You can use the command "docker-machine ip default" to get the IP to use.
For info the "--rm" is used to destroy the container image when you close it, so if you want persistent image, you should remove that flag "--rm" .
I am not an expert in docker techno, so any suggestion is welcome.
And if you have question, I can also try to answer your questions.
All those containers are built from Dockerfile, so it is easy to see how it is built, and how to modify them if needed, or even how to build your own docker container on top of eiffel/... containers. The files are available on github:
https://github.com/eiffel-docker/eiffel
I hope this will help some of you, and hopefully with your contributions, we may improve the current dockers.
I will try to provide other containers to test the EiffelWeb framework, the ROC CMS, or any project that may be fun to test easily with docker (such as the iron container).
Regards,