Download the Docker image tarball from your personal account and import it like described below.
If you want to install VIMP via Docker image for the first time, please contact us to provide the image in your account.
PLEASE NOTE: The following installation instructions are not intended for production use! Please consult your system administrator to set up VIMP in a production Docker environment!
Please replace 5.x.x-rxxxxx in the following with the actual version number and revision.
gunzip vimp-enterprise-docker-5.x.x-rxxxxx.tar.gz docker load -i vimp-enterprise-docker-5.x.x-rxxxxx.tar
First, we determine the repository and correct tag for our VIMP image:
docker images | grep vimp
You will get a list of the existing Docker images by the above command. Only the latest VIMP image is relevant for us now, which appears in the list as follows, for example:
REPOSITORY TAG IMAGE ID CREATED SIZE registry.vimp.dev/vimp/enterprise 5.8.2-47311 62fbad7db208 18 hours ago 1.93GB
The registry path and tag must be replaced accordingly in the following commands and in the docker-compose.yml file, so make a note of both (in our example, it would be composed registry.vimp.dev/vimp/enterprise:5.8.2-47311).
We now proceed to create the directory from which the volumes will be mounted (please replace test-vimp with the actual directory name you want to use):
mkdir -p test-vimp cd test-vimp
As well as with the directory for the MySQL data:
mkdir -p vimp_db
Now we copy the contents of the config, templates and userdata directories (replace the registry path and tag here accordingly).
docker run -d --name tmp_vimp_enterprise registry.vimp.dev/vimp/enterprise:5.8.2-47311 \ && docker cp tmp_vimp_enterprise:/var/www/html/config . \ && docker cp tmp_vimp_enterprise:/var/www/html/templates . \ && docker cp tmp_vimp_enterprise:/var/www/html/userdata . \ && docker stop tmp_vimp_enterprise \ && docker rm tmp_vimp_enterprise
Let’s see, if config, templates and userdata are there:
ls
Make sure you have a proper docker-compose.yml file in the current directory next to the config, templates, and userdata folders (see the end of this article for an example of the docker-compose.yml).
Then execute the following:
docker-compose up -d
You can check with docker-compose logs -f if the database is ready to accept connections. Then install the VIMP application and create all required tables like follows.
When prompted, please ensure that the database credentials match the database credentials of the docker-compose.yml file.
Please note to enter the name of the service as database host, in this case "db".
docker-compose exec httpd ./symfony framework:install -C --yes \ && docker-compose exec httpd ./symfony framework:update --nothing --modules=yes \ && docker-compose exec httpd ./symfony framework:update --nothing --database=yes \ && docker-compose exec httpd ./symfony framework:update --nothing --rebuild=yes
IMPORTANT NOTE: framework:install will delete all existing data! Do not execute this on an existing VIMP database unless you know what you are doing! See next, how to update the Docker image.
That’s it – you can now access VIMP via your given Apache server name, which in our example is http://localhost.
Here we describe how to update VIMP Enterprise with docker-compose when a new version of the image exists.
Please replace 5.x.x-rxxxxx in the following with the actual version number and revision.
gunzip vimp-enterprise-docker-5.x.x-rxxxxx.tar.gz docker load -i vimp-enterprise-docker-5.x.x-rxxxxx.tar
First, we again determine the repository and correct tag for our VIMP image:
docker images | grep vimp
You will get a list of the existing Docker images by the above command. Only the latest VIMP image is relevant for us now, which appears in the list as follows, for example:
REPOSITORY TAG IMAGE ID CREATED SIZE registry.vimp.dev/vimp/enterprise 5.8.2-47311 62fbad7db208 18 hours ago 1.93GB
The registry path and tag must be replaced accordingly in the following commands and in the docker-compose.yml file, so make a note of both (in our example, it would be composed registry.vimp.dev/vimp/enterprise:5.8.2-47311).
In the following, please replace the directory test-vimp again with the actual directory name you want to use and replace the registry path as described above:
cd test-vimp \ && mkdir -p tmp \ && docker run -d --name tmp_vimp_enterprise registry.vimp.dev/vimp/enterprise:5.8.2-47311 \ && docker cp tmp_vimp_enterprise:/var/www/html/config ./tmp/config \ && docker cp tmp_vimp_enterprise:/var/www/html/templates ./tmp/templates \ && docker cp tmp_vimp_enterprise:/var/www/html/userdata ./tmp/userdata \ && docker stop tmp_vimp_enterprise \ && docker rm tmp_vimp_enterprise \ && rm ./tmp/config/databases.yml ./tmp/config/propel.ini
With the above commands you have created a "tmp/" directory and copied the config, templates and userdata folders into it from the current VIMP version.
Next, some manual work is required. Your customizations in the previous folders (if you made any) must be merged with the files from /tmp/{config,userdata,templates}.
In the simplest case - if you have not made any individual adjustments - you can simply copy the files:
cp -ar tmp/* .
When this is done, you can stop and remove the current VIMP version with:
docker-compose stop httpd && docker-compose rm httpd
And start the new version with:
docker-compose up -d httpd
But before that, please adjust the correct version in docker-compose.yml.
The last thing to do is to run a database update:
docker-compose exec httpd ./symfony framework:update --nothing --rebuild=yes --yes docker-compose exec httpd ./symfony framework:update --yes
and we delete the tmp folder:
rm -Rf tmp
Please replace the registry path as described above!
version: '3.3' services: httpd: image: registry.vimp.dev/vimp/enterprise:5.8.2-47311 container_name: vimp_httpd_enterprise restart: always ports: - "80:80" # use a free port environment: - APACHE_SERVER_NAME=localhost volumes: - ./config:/var/www/html/config:cached - ./templates:/var/www/html/templates:cached - ./userdata:/var/www/html/userdata depends_on: - db networks: - vimp-network db: image: mariadb:latest container_name: mariadb restart: always expose: - 3306 volumes: - "./vimp_db:/var/lib/mysql" environment: MYSQL_USER: vimp MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: vimp command: --sql_mode="IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO" networks: - vimp-network networks: vimp-network: # Define a custom network driver: bridge