From ee82e276f5c1537358c6aa0c8d073372deb3dc9f Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Mon, 13 Sep 2021 15:28:02 +0200 Subject: [PATCH] Update README.md --- README.md | 115 ++++++++++++++++++++++++------------------------------ 1 file changed, 50 insertions(+), 65 deletions(-) diff --git a/README.md b/README.md index 4b19064..0519f1b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 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 environment for ClusterCockpit. +This is a setup for `docker compose` to try out a complete ClusterCockpit Application Stack including all external components. This docker setup can be easily configured to be used as demo or as a development environment for ClusterCockpit. It creates containers for: * mysql @@ -8,10 +8,10 @@ It creates containers for: * nginx * redis * openldap -* influxdb (only in dev mode) -* phpmyadmin (only in dev mode), this did not work with Chrome for me. +* influxdb +* phpmyadmin -Ports and Passwords are configured in `.env`. +All settings are configured in `.env`. The setup comes with fixture data for a job archive, influxDB, mySQL and a LDAP user directory. ## Known Issues @@ -19,75 +19,60 @@ Ports and Passwords are configured in `.env`. * 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 -* The demo starts in Symfony production environment. -* It uses prepared fixture data for databases (Changes will not be preserved). -* ClusterCockpit is checked out and initialized from scratch on every container start (Changes will not be preserved). +## Configuration + +While many aspects of this docker compose setup can be configured you ussually only need to adapt the following three settings in `.env`: +* `CLUSTERCOCKPIT_BRANCH` (Default: `develop`): The branch to checkout from ClusterCockpit git repository. May also be a tag. +* `APP_CLUSTERCOCKPIT_INIT` (Default: true): Wether the Symfony tree (located at `./data/symfony`) should be deleted and freshly cloned and setup on every container startup. +* `APP_ENVIRONMENT` (Default: `dev`): The Symfony App environment. With `dev` you get a Debugging Toolbar and more extensive error handling. Using `prod` is a setup for productions usage. + +## Setup -### Setup -The fixture data needs to be prepared once before first start of containers: * `$ cd data` -* `$ ./init.sh` +* `$ ./init.sh`: The script asks for sudo rights as the file ownership needs to changed for some folders. **NOTICE** The script will download files of total size of 338MB (most for the InfluxDB data). 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` . +Before you can use ClusterCockpit the following disclaimer must be shown. To download and build all ClusterCockpit components may take up to several minutes: +``` +-------------------- --------------------------------- + Symfony + -------------------- --------------------------------- + Version 5.3.7 + Long-Term Support No + End of maintenance 01/2022 (in +140 days) + End of life 01/2022 (in +140 days) + -------------------- --------------------------------- + Kernel + -------------------- --------------------------------- + Type App\Kernel + Environment dev + Debug true + Charset UTF-8 + Cache directory ./var/cache/dev (6.5 MiB) + Build directory ./var/cache/dev (6.5 MiB) + Log directory ./var/log (249 B) + -------------------- --------------------------------- + PHP + -------------------- --------------------------------- + Version 8.0.10 + Architecture 64 bits + Intl locale n/a + Timezone UTC (2021-09-13T09:41:33+00:00) + OPcache true + APCu false + Xdebug false + -------------------- --------------------------------- + ``` + +By default, you can access ClusterCockpit in your browser at http://localhost . If the `NGINX_PORT` environment variable was changed, use `http://localhost:$PORT` . You can shutdown the containers by pressing `CTRL-C`. -Credentials for admin user are: +## Usage + +Credentials for the preconfigured 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 -* The `APP_ENVIRONMENT` variable in `.env` is used to switch the `php-fpm` container to development environment. -* The `APP_CLUSTERCOCKPIT_INIT` variable in `.env` is used to prevent the container from initializing a new ClusterCockpit instance on every start. -* In this case, an existing Symfony tree at `./data/symfony` is required. -* By default, this also uses prepared fixture data for databases. In order to use an existing database, changes in `.env` and `docker-compose.yml` are required (see below). - -### Setup -This description assumes you will let the docker setup initialize the symfony tree and data fixtures for you. -If not using an existing database, the fixture data needs to be prepared before the first start of the containers: -* `$ cd data` -* `$ ./init.sh dev` - -In `.env`, change the following variables under `APP` -* `APP_ENVIRONMENT` to `dev` - -In case you want to switch from Demo to Develop you have to purge previous images. This command will purge **ALL** your docker images: -``` -$ docker images -a -q | xargs docker rmi -f -``` - -Check with: -``` -$ docker images -``` -that all images are gone. - -After that from the root of the repository you can start up the containers with (use -d switch to startup in detached mode): -* `docker-compose -f docker-compose.yml -f docker-compose-dev.yml up` -* Wait... and wait a little longer - -After the initial setup you have to: -* Comment or delete the line `- ${DATADIR}/sql:/docker-entrypoint-initdb.d` for `cc-db` to disable initialisation of the MySQL database. -* Set `APP_CLUSTERCOCKPIT_INIT` to `false` in the .env file - -On subsequent start of the containers you will then reuse the persisted volume data located in the `./data` directory. - -By default, you can access ClusterCockpit in your browser at `http://localhost`. -If `NGINX_PORT` environment variable was changed, `use http://localhost:$PORT`. -The InfluxDB Web interface can be accessed at `http://localhost:8086` using the credentials set in `.env`. -PHPMyAdmin can be reached at `http://localhost:8080`. - -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` if not started in detached mode. +You can also login as regular user using any credential in the LDAP user directory at `./data/ldap/users.ldif`.