Simplicité on Docker

Simplicité® instances can easily be deployed on the Docker engine.

Prerequisites

Configure a Linux server with Docker (e.g. with recent Linux distributions this is straightforward as Docker is part of the distributions).

Take a look at the Docker documentation for details.

Build and run a custom container from the server image

Get the Simplicité® instance template from our private Git repository, please contact us to get access to this repository.

Pull the Simplicité® Docker public server image from our DockerHub registry (docker pull simplicite/server) and build a new custom child image adding the application package of the instance template (in the app folder of the instance template).

Note: if your server has no access to DockerHub you can still get the image manually by saving it on a server which has access (docker save simplicite/server > simplicite-server.tar), then transfer it to yor target server, then load it on this server's local docker images registry (docker load < simplicite-server.tar)

Run a container from the server image with external Git URL

The server images can also be bound to an external instance template's Git repository URL (using the GIT_URL environment variable) which an be local (typically a local clone path) or a remote (typically the default URL of our Git repository: https://<your username>:<your password>@platform.git.simplicite.io/template-<version>.git).

When configured like this any change on the repository is automatically applied to the deployed instance within the container when restarting it.

This strategy is the ideal scenario if you want to simplify and/or automate the platform upgrades.

Run a container from the pre-built platform images

Pre-built images including the latest Simplicité® intances are also available. These images are private on our DockerHub registry, please contact us to get access to these images.

Typical procedure on CentOS 7

On an "out of the box" CentOS 7 server you can start a clean & fresh Simplicité® sandbox instance with the folowing commands in only few seconds:

First, install the standard Docker service:

sudo yum update
sudo yum install docker
sudo systemctl enable docker
sudo systemctl start docker

Then pull the platform image and run an ephemeral container from this image:

sudo docker login
sudo docker pull simplicite/platform
sudo docker run -it --rm -p 80:8080 simplicite/platform

Note: to make the docker container running permanently (and restarting at reboot) use -d --restart=always instead of -it --rm

The instance is then available on http://<your server IP address or hostname>

Typical procedure on Debian 9

On an "out of the box" Debian 9 server you can start a clean & fresh Simplicit√©® sandbox instance with the folowing commands in only few seconds:

Install the up-to-date Docker-CE service:

sudo apt-get update
sudo apt-get -y remove docker docker-engine docker.io
sudo apt-get install -y apt-transport-https ca-certificates wget software-properties-common
wget https://download.docker.com/linux/debian/gpg
sudo apt-key add gpg
echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get -y install docker-ce
sudo systemctl start docker
sudo systemctl enable docker

Pull the platform image and run an ephemeral container:

sudo docker login
sudo docker pull simplicite/platform
sudo docker run -it --rm -p 80:8080 simplicite/platform

Note: to make the docker container running permanently (and restarting at reboot) use -d --restart=always instead of -it --rm

The instance is then available on http://<your server IP address or hostname>

Use an external database

Both the server and prebuilt images allows you to start a container using an external database using the appropriate DB_* environment variables. See our Docker repository on GitHub for details.

Using an external database is the typical approach if you use prebuilt images (for which upgrading means starting a new container).