Written by apatricelli
Docker is a new (but already widely used) "virtualization" technology.
Its creators defined it: "Docker is a tool that can package an application and its dependencies in a virtual container that can run on any Linux server. This helps enable flexibility and portability on where the application can run, whether on premises, public cloud, private cloud, bare metal, etc."
You can bring everything with Docker, and it is relatively simple to use: you
only need to provide a well-formed Dockerfile.
In this post we are going to introduce a simple project born with the specific
goal to run Apache Syncope as a Docker application in a Docker container.
In this
github
repo of mine you can find a sample project form which you can get Dockerfile
and needed initialization files (except Apache Syncope wars, that you have to
build separately on your machine).
Following the github project above and its
wiki,
the steps to run your Apache Syncope + MySQL container can be summarized in:
If you have a Docker image you can import/export it from one machine to
another very simply, and you also can choose what kind of (linux based)
operating system to use inside your container; in fact in the case of our Apache
Syncope image we used a minimal debian Jesse image, where minimal stands for a
modified version of debian system without unuseul libraries, extensions, etc.
There are a lot of very little and light images available on Docker hub, all
free to use.
Moreover another important Docker feature is that you can "version" images, you
also have in docker an embedded version control of your images, and if you want
you can publish them on Docker official repository (hub) or on your custom
(home-made) repository and version them in the same way.
Apache Syncope with Docker project is only a starting point, in fact there
are a lot of improvements and developments that can be performed on the project,
one for all the use of docker-compose a Docker sub-project that helps you to
manage and link multiple containers by creating a YML file. For example this
could be done for Apache Syncope to have a container with MySQL (or others)
database and one container with the application (this would be more correct
"Dockery" speaking).
Currently we are working to avoid initial build of the app by installing Apache
Syncope from deb packages, you can find the project in
this
branch.