A configurable docker compose setup for development and testing of ClusterCockpit
Go to file
2021-06-15 16:45:15 +02:00
data Corrections and improvements. Split compose into two files. 2021-06-15 16:45:15 +02:00
nginx Prepare docker setup to use fixtures 2021-06-09 09:53:35 +02:00
php-fpm Corrections and improvements. Split compose into two files. 2021-06-15 16:45:15 +02:00
.env add DEVELOP case options and update README.md 2021-06-11 13:44:51 +02:00
.gitignore add .gitignore for job-archive and symfony 2021-06-10 14:21:04 +02:00
docker-compose-dev.yml Corrections and improvements. Split compose into two files. 2021-06-15 16:45:15 +02:00
docker-compose.yml Corrections and improvements. Split compose into two files. 2021-06-15 16:45:15 +02:00
LICENSE Initial commit 2021-05-19 07:49:23 +02:00
README.md Corrections and improvements. Split compose into two files. 2021-06-15 16:45:15 +02:00

cc-docker

This is a setup for docker compose to try out a complete ClusterCockpit Application Stack including all external components. This docker setup is intended for demo purposes, but can be easily configured to be used as a development environement for ClusterCockpit.

It creates containers for:

  • mysql
  • influxdb
  • php-fpm
  • nginx
  • phpmyadmin (only in dev mode)

Ports and Passwords are configured in .env.

TODOS (There are probably a lot more!):

  • Some of the Volume directories need to be created first.
  • ClusterCockpit is at the moment still using the influxDB V1 API, the InfluxDB container is already V2
  • For a complete demo database setup, InfluxDB data fixtures are missing (MySQL demo database is available)

Known Issues

  • docker-compose installed on Ubuntu (18.04, 20.04) via apt-get can not correctly parse docker-compose.yml due to version differences. Install latest version of docker-compose from https://docs.docker.com/compose/install/ instead.
  • You need to ensure that no other web server is running on port 80 (e.g. Apache2). If port 80 is already in use, edit NGINX_PORT environment variable in .env.
  • Existing VPN connections sometimes cause problems with docker. If docker-compose does not start up correctly, try disabling any active VPN connection. Refer to https://stackoverflow.com/questions/45692255/how-make-openvpn-work-with-docker for further information.

Using for DEMO purpose

Info

  • Demo starts in production environment.
  • Uses prepared fixture data for databases (Changes will not be preserved).
  • ClusterCockpit is initialized from scratch on every container start (Changes will not be preserved).

Setup

The fixture data needs to be prepared once before first start of containers:

  • $ cd data
  • $ ./init.sh

After that from the root of the repository you can start up the containers with:

  • docker-compose up
  • Wait... and wait a little longer

By default, you can access ClusterCockpit in your browser at http://localhost . If the NGINX_PORT environment variable was changed, use http://localhost:$PORT .

Credentials for admin user are:

  • User: admin
  • Password: AdminDev

You can shutdown the containers by pressing CTRL-C.

To reuse an existing Symfony tree at ./data/symfony you may change the environment variable APP_CLUSTERCOCKPIT_INIT in .env from true to false.

Using for DEVELOP purpose

Info

  • APP_ENVIRONMENT variable in .env used to switch php-fpm container to development environment.
  • APP_CLUSTERCOCKPIT_INIT variable in .env used to prevent container from initializing a new ClusterCockpit instance on every start.
  • In this case, an existing Symfony tree at ./data/symfony is required.
  • Due to additional dependencies of the development environment, the instance has to be prepared with composer and yarn devel-options.
  • By default, this also uses prepared fixture data for databases (Changes will not be preserved). In order to use an existing database, changes in .env and docker-compose.yml are required (see below).

Setup

If not using an existing database, the fixture data needs to be prepared before the first start of the containers:

  • $ cd data
  • $ ./init.sh

If an existing database is to be used, do the following:

  • It is recommended to use the included MySQL container.
  • Uncomment the mapping of default volume paths in docker-compose.yml for cc-db and/or cc-influxdb under volumes to persist the data across container restarts.
  • Comment or delete the line - ${DATADIR}/sql:/docker-entrypoint-initdb.d for cc-db to disable initialisation of the MySQL database. You may also place an own MysQL database dump in ./data/sql.

In .env, change the following variables under APP

  • APP_CLUSTERCOCKPIT_INIT to false
  • APP_ENVIRONMENT to dev

After that from the root of the repository you can start up the containers with:

  • docker-compose up
  • Wait... and wait a little longer

By default, you can access ClusterCockpit in your browser at http://localhost . If NGINX_PORT environment variable was changed, use http://localhost:$PORT .

If default database fixture were used, the credentials for admin user are:

  • User: admin
  • Password: AdminDev

You can shutdown the containers by pressing CTRL-C.