mirror of
https://github.com/ClusterCockpit/cc-docker.git
synced 2024-11-10 09:37:25 +01:00
Remove ccbackend autobuild, remove ccms/influx splitting, add mariadb
This commit is contained in:
parent
ae6d8228fa
commit
2761102adf
22
README.md
22
README.md
@ -7,10 +7,11 @@ This is a `docker-compose` setup which provides a quickly started environment fo
|
|||||||
It includes the following containers:
|
It includes the following containers:
|
||||||
* nats (Default)
|
* nats (Default)
|
||||||
* cc-metric-store (Default)
|
* cc-metric-store (Default)
|
||||||
* influxdb (Optional)
|
* influxdb (Default)
|
||||||
* openldap (Default)
|
* openldap (Default)
|
||||||
* mysql (Optional, Manual)
|
* mysql (Optional)
|
||||||
* phpmyadmin (Optional, Manual)
|
* mariadb (Optional)
|
||||||
|
* phpmyadmin (Optional)
|
||||||
|
|
||||||
The setup comes with fixture data for a Job archive, cc-metric-store checkpoints, InfluxDB, MySQL, and a LDAP user directory.
|
The setup comes with fixture data for a Job archive, cc-metric-store checkpoints, InfluxDB, MySQL, and a LDAP user directory.
|
||||||
|
|
||||||
@ -23,19 +24,16 @@ The setup comes with fixture data for a Job archive, cc-metric-store checkpoints
|
|||||||
## Configuration Templates
|
## Configuration Templates
|
||||||
|
|
||||||
Located in `./templates`
|
Located in `./templates`
|
||||||
* `docker-compose.yml.ccms`: Docker-Compose file to setup cc-metric-store metric database and LDAP containers (Default). Used in `setupDev.sh`.
|
* `docker-compose.yml.default`: Docker-Compose file to setup cc-metric-store, InfluxDB, and LDAP containers (Default). Used in `setupDev.sh`.
|
||||||
* `docker-compose.yml.influxdb`: Docker-Compose file to setup influxDB metric database and LDAP containers. Used in `setupDev.sh`.
|
|
||||||
* `docker-compose.yml.mysql`: Docker-Compose configuration template if additional MySQL and phpmyadmin containers are desired.
|
* `docker-compose.yml.mysql`: Docker-Compose configuration template if additional MySQL and phpmyadmin containers are desired.
|
||||||
* `env.ccms`: Environment variables for setup with cc-metric-store metric database and LDAP containers (Default). Used in `setupDev.sh`.
|
* `docker-compose.yml.mariadb`: Docker-Compose configuration template if additional MariaDB and phpmyadmin containers are desired.
|
||||||
* `env.influxdb`: Environment variables for setup with influxDB metric database and LDAP containers. Used in `setupDev.sh`.
|
* `env.default`: Environment variables for setup with cc-metric-store, InfluxDB, and LDAP containers (Default). Used in `setupDev.sh`.
|
||||||
* `env.mysql`: Additional environment variables required if additional MySQL and phpmyadmin containers are desired.
|
* `env.mysql`: Additional environment variables required if additional MySQL and phpmyadmin containers are desired.
|
||||||
|
* `env.mariadb`: Additional environment variables required if additional MariaDB and phpmyadmin containers are desired.
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
1. `$ ./setupDev.sh [help|ccms|influxdb]`: **NOTICE** The script will download files of a total size of 338MB (mostly for the InfluxDB data).
|
1. `$ ./setupDev.sh`: **NOTICE** The script will download files of a total size of 338MB (mostly for the InfluxDB data).
|
||||||
* `help`: Displays help.
|
|
||||||
* `ccms`: Copies according docker-compose.yml and env-file to root directory, downloads cc-metric-store checkpoint data, and builds containers.
|
|
||||||
* `influxdb`: Copies according docker-compose.yml and env-file to root directory, downloads influxDB data, and builds containers.
|
|
||||||
|
|
||||||
2. After that from the root of the cc-docker sandbox you can start up the containers and launch cc-backend with: `$ ./startDev.sh`
|
2. After that from the root of the cc-docker sandbox you can start up the containers and launch cc-backend with: `$ ./startDev.sh`
|
||||||
|
|
||||||
@ -43,7 +41,7 @@ Located in `./templates`
|
|||||||
|
|
||||||
## Post-Setup Adjustment for using `influxdb`
|
## Post-Setup Adjustment for using `influxdb`
|
||||||
|
|
||||||
When using `influxdb` containers, one must adjust the following files:
|
When using `influxdb` as a metric database, one must adjust the following files:
|
||||||
* `cc-backend/var/job-archive/emmy/cluster.json`
|
* `cc-backend/var/job-archive/emmy/cluster.json`
|
||||||
* `cc-backend/var/job-archive/woody/cluster.json`
|
* `cc-backend/var/job-archive/woody/cluster.json`
|
||||||
|
|
||||||
|
93
setupDev.sh
93
setupDev.sh
@ -1,28 +1,14 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ -z "$1" ]; then
|
|
||||||
echo "No argument supplied. Use 'help', 'ccms' (Default), or 'influxdb'."
|
|
||||||
exit
|
|
||||||
elif [ "$1" == "help" ]; then
|
|
||||||
echo "Script to setup cc-backend devel environment. Use 'help', 'ccms' (Default), or 'influxdb' as argument."
|
|
||||||
echo "'help' : This help."
|
|
||||||
echo "'ccms' : Setup cc-metric-store example data and build docker container."
|
|
||||||
echo "'influxdb' : Setup influxdb example data and build docker container. Requires additional configuration afterwards."
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
echo "Starting setup for '$1' ..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Download data for influxdb2
|
# Download data for influxdb2
|
||||||
if [ "$1" == "influxdb" ]; then
|
if [ ! -d data/influxdb ]; then
|
||||||
if [ ! -d data/influxdb ]; then
|
|
||||||
mkdir -p data/influxdb/data
|
mkdir -p data/influxdb/data
|
||||||
cd data/influxdb/data
|
cd data/influxdb/data
|
||||||
wget https://hpc-mover.rrze.uni-erlangen.de/HPC-Data/0x7b58aefb/eig7ahyo6fo2bais0ephuf2aitohv1ai/influxdbv2-data.tar.xz
|
wget https://hpc-mover.rrze.uni-erlangen.de/HPC-Data/0x7b58aefb/eig7ahyo6fo2bais0ephuf2aitohv1ai/influxdbv2-data.tar.xz
|
||||||
tar xJf influxdbv2-data.tar.xz
|
tar xJf influxdbv2-data.tar.xz
|
||||||
rm influxdbv2-data.tar.xz
|
rm influxdbv2-data.tar.xz
|
||||||
cd ../../../
|
cd ../../../
|
||||||
else
|
else
|
||||||
echo "'data/influxdb' already exists!"
|
echo "'data/influxdb' already exists!"
|
||||||
echo -n "Remove existing folder and redownload? [yes to redownload / no to continue] "
|
echo -n "Remove existing folder and redownload? [yes to redownload / no to continue] "
|
||||||
read -r answer
|
read -r answer
|
||||||
@ -40,12 +26,10 @@ if [ "$1" == "influxdb" ]; then
|
|||||||
else
|
else
|
||||||
echo "'data/influxdb' unchanged."
|
echo "'data/influxdb' unchanged."
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download checkpoint files for cc-metric-store
|
# Download checkpoint files for cc-metric-store
|
||||||
if [ "$1" == "ccms" ]; then
|
if [ ! -d data/cc-metric-store ]; then
|
||||||
if [ ! -d data/cc-metric-store ]; then
|
|
||||||
mkdir -p data/cc-metric-store/checkpoints
|
mkdir -p data/cc-metric-store/checkpoints
|
||||||
mkdir -p data/cc-metric-store/archive
|
mkdir -p data/cc-metric-store/archive
|
||||||
cd data/cc-metric-store/checkpoints
|
cd data/cc-metric-store/checkpoints
|
||||||
@ -53,7 +37,7 @@ if [ "$1" == "ccms" ]; then
|
|||||||
tar xf cc-metric-store-checkpoints.tar.xz
|
tar xf cc-metric-store-checkpoints.tar.xz
|
||||||
rm cc-metric-store-checkpoints.tar.xz
|
rm cc-metric-store-checkpoints.tar.xz
|
||||||
cd ../../../
|
cd ../../../
|
||||||
else
|
else
|
||||||
echo "'data/cc-metric-store' already exists!"
|
echo "'data/cc-metric-store' already exists!"
|
||||||
echo -n "Remove existing folder and redownload? [yes to redownload / no to continue] "
|
echo -n "Remove existing folder and redownload? [yes to redownload / no to continue] "
|
||||||
read -r answer
|
read -r answer
|
||||||
@ -72,81 +56,16 @@ if [ "$1" == "ccms" ]; then
|
|||||||
else
|
else
|
||||||
echo "'data/cc-metric-store' unchanged."
|
echo "'data/cc-metric-store' unchanged."
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download && Setup cc-backend
|
|
||||||
if [ ! -d cc-backend ]; then
|
|
||||||
## Get backend git [can use --recursive to load frontend via ssh directly]
|
|
||||||
git clone https://github.com/ClusterCockpit/cc-backend.git
|
|
||||||
cd cc-backend
|
|
||||||
## Get frontend git [http variant]
|
|
||||||
cd frontend
|
|
||||||
### Comment ths if --recursive
|
|
||||||
git clone https://github.com/ClusterCockpit/cc-frontend.git .
|
|
||||||
yarn install
|
|
||||||
yarn build
|
|
||||||
cd ..
|
|
||||||
## Download Demo-Archive and prepare SQLite DB
|
|
||||||
mkdir ./var
|
|
||||||
cd ./var
|
|
||||||
wget https://hpc-mover.rrze.uni-erlangen.de/HPC-Data/0x7b58aefb/eig7ahyo6fo2bais0ephuf2aitohv1ai/job-archive.tar.xz
|
|
||||||
tar xJf job-archive.tar.xz
|
|
||||||
rm ./job-archive.tar.xz
|
|
||||||
touch ./job.db
|
|
||||||
cd ..
|
|
||||||
## Install backend
|
|
||||||
go get
|
|
||||||
go build
|
|
||||||
## initialize job archive and SQLite
|
|
||||||
./cc-backend --init-db --add-user demo:admin:AdminDev --no-server
|
|
||||||
cd ..
|
|
||||||
else
|
|
||||||
echo "'cc-backend' already exists!"
|
|
||||||
echo -n "Remove existing folder and reinstall? [yes to reinstall / no to continue] "
|
|
||||||
read -r answer
|
|
||||||
if [ "$answer" == "yes" ]; then
|
|
||||||
echo "Removing 'cc-backend' ..."
|
|
||||||
rm -rf cc-backend
|
|
||||||
echo "Reinstall 'cc-backend'..."
|
|
||||||
## Get backend git [can use --recursive to load frontend via ssh directly]
|
|
||||||
git clone https://github.com/ClusterCockpit/cc-backend.git
|
|
||||||
cd cc-backend
|
|
||||||
## Get frontend git [http variant]
|
|
||||||
cd frontend
|
|
||||||
### Comment ths if --recursive
|
|
||||||
git clone https://github.com/ClusterCockpit/cc-frontend.git .
|
|
||||||
yarn install
|
|
||||||
yarn build
|
|
||||||
cd ..
|
|
||||||
## Download Demo-Archive and prepare SQLite DB
|
|
||||||
mkdir ./var
|
|
||||||
cd ./var
|
|
||||||
wget https://hpc-mover.rrze.uni-erlangen.de/HPC-Data/0x7b58aefb/eig7ahyo6fo2bais0ephuf2aitohv1ai/job-archive.tar.xz
|
|
||||||
tar xJf job-archive.tar.xz
|
|
||||||
rm ./job-archive.tar.xz
|
|
||||||
touch ./job.db
|
|
||||||
cd ..
|
|
||||||
## Install backend
|
|
||||||
go get
|
|
||||||
go build
|
|
||||||
## initialize job archive and SQLite
|
|
||||||
./cc-backend --init-db --add-user demo:admin:AdminDev --no-server
|
|
||||||
cd ..
|
|
||||||
else
|
|
||||||
echo "'cc-backend' unchanged."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Check dotenv-file and docker-compose-yml, copy accordingly if not present and build docker services
|
# Check dotenv-file and docker-compose-yml, copy accordingly if not present and build docker services
|
||||||
# !! By default, this decides which metric database is used based on the selected argument !!
|
# !! By default, this decides which metric database is used based on the selected argument !!
|
||||||
if [ ! -d .env ]; then
|
if [ ! -d .env ]; then
|
||||||
cp templates/env.$1 ./.env
|
cp templates/env.default ./.env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d docker-compose.yml ]; then
|
if [ ! -d docker-compose.yml ]; then
|
||||||
cp templates/docker-compose.yml.$1 ./docker-compose.yml
|
cp templates/docker-compose.yml.default ./docker-compose.yml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker-compose build
|
docker-compose build
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
|
|
||||||
cd cc-backend
|
|
||||||
./cc-backend
|
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
services:
|
|
||||||
nats:
|
|
||||||
container_name: cc-nats
|
|
||||||
image: nats:alpine
|
|
||||||
ports:
|
|
||||||
- "4222:4222"
|
|
||||||
- "8222:8222"
|
|
||||||
|
|
||||||
cc-metric-store:
|
|
||||||
container_name: cc-metric-store
|
|
||||||
build:
|
|
||||||
context: ./cc-metric-store
|
|
||||||
ports:
|
|
||||||
- "8084:8084"
|
|
||||||
volumes:
|
|
||||||
- ${DATADIR}/cc-metric-store:/data
|
|
||||||
depends_on:
|
|
||||||
- nats
|
|
||||||
|
|
||||||
openldap:
|
|
||||||
container_name: cc-ldap
|
|
||||||
image: osixia/openldap:1.5.0
|
|
||||||
command: --copy-service --loglevel debug
|
|
||||||
environment:
|
|
||||||
- LDAP_ADMIN_PASSWORD=${LDAP_ADMIN_PASSWORD}
|
|
||||||
- LDAP_ORGANISATION=${LDAP_ORGANISATION}
|
|
||||||
- LDAP_DOMAIN=${LDAP_DOMAIN}
|
|
||||||
volumes:
|
|
||||||
- ${DATADIR}/ldap:/container/service/slapd/assets/config/bootstrap/ldif/custom
|
|
@ -1,4 +1,22 @@
|
|||||||
services:
|
services:
|
||||||
|
nats:
|
||||||
|
container_name: cc-nats
|
||||||
|
image: nats:alpine
|
||||||
|
ports:
|
||||||
|
- "4222:4222"
|
||||||
|
- "8222:8222"
|
||||||
|
|
||||||
|
cc-metric-store:
|
||||||
|
container_name: cc-metric-store
|
||||||
|
build:
|
||||||
|
context: ./cc-metric-store
|
||||||
|
ports:
|
||||||
|
- "8084:8084"
|
||||||
|
volumes:
|
||||||
|
- ${DATADIR}/cc-metric-store:/data
|
||||||
|
depends_on:
|
||||||
|
- nats
|
||||||
|
|
||||||
influxdb:
|
influxdb:
|
||||||
container_name: cc-influxdb
|
container_name: cc-influxdb
|
||||||
image: influxdb
|
image: influxdb
|
28
templates/docker-compose.yml.mariadb
Normal file
28
templates/docker-compose.yml.mariadb
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
services:
|
||||||
|
db:
|
||||||
|
container_name: cc-db
|
||||||
|
image: mariadb:latest
|
||||||
|
command: ["--default-authentication-plugin=mysql_native_password"]
|
||||||
|
environment:
|
||||||
|
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
|
||||||
|
MARIADB_DATABASE: ${MARIADB_DATABASE}
|
||||||
|
MARIADB_USER: ${MARIADB_USER}
|
||||||
|
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:3336:3306"
|
||||||
|
volumes:
|
||||||
|
- ${DATADIR}/sql-init:/docker-entrypoint-initdb.d
|
||||||
|
cap_add:
|
||||||
|
- SYS_NICE
|
||||||
|
|
||||||
|
phpmyadmin:
|
||||||
|
container_name: cc-phpmyadmin
|
||||||
|
image: phpmyadmin
|
||||||
|
environment:
|
||||||
|
- PMA_HOST=cc-db
|
||||||
|
- PMA_USER=root
|
||||||
|
- PMA_PASSWORD=${MARIADB_ROOT_PASSWORD}
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:${PHPMYADMIN_PORT}:80"
|
||||||
|
depends_on:
|
||||||
|
- db
|
@ -1,5 +1,5 @@
|
|||||||
########################################################################
|
########################################################################
|
||||||
# CCBACKEND DEVEL DOCKER SETTINGS FOR INFLUXDB AND LDAP
|
# CCBACKEND DEVEL DOCKER SETTINGS
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
@ -13,7 +13,7 @@ INFLUXDB_BUCKET=ClusterCockpit
|
|||||||
# Whether or not to check SSL Cert in Symfony Client, Default: false
|
# Whether or not to check SSL Cert in Symfony Client, Default: false
|
||||||
INFLUXDB_SSL=false
|
INFLUXDB_SSL=false
|
||||||
|
|
||||||
########################################################################
|
#########################################
|
||||||
# LDAP
|
# LDAP
|
||||||
########################################################################
|
########################################################################
|
||||||
LDAP_ADMIN_PASSWORD=mashup
|
LDAP_ADMIN_PASSWORD=mashup
|
@ -1,15 +1,16 @@
|
|||||||
########################################################################
|
########################################################################
|
||||||
# CCBACKEND DEVEL DOCKER SETTINGS FOR LDAP (CCMS-Devel)
|
# ADDITIONAL ENV VARIABLES FOR MARIABD AND PHPMYADMIN CONTAINERS
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
#########################################
|
|
||||||
# LDAP
|
|
||||||
########################################################################
|
########################################################################
|
||||||
LDAP_ADMIN_PASSWORD=mashup
|
# MARIADB
|
||||||
LDAP_ORGANISATION=NHR@FAU
|
########################################################################
|
||||||
LDAP_DOMAIN=rrze.uni-erlangen.de
|
MARIADB_ROOT_PASSWORD=root
|
||||||
|
MARIADB_DATABASE=ClusterCockpit
|
||||||
|
MARIADB_USER=clustercockpit
|
||||||
|
MARIADB_PASSWORD=clustercockpit
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# INTERNAL SETTINGS
|
# PHPMyAdmin
|
||||||
########################################################################
|
########################################################################
|
||||||
DATADIR=./data
|
PHPMYADMIN_PORT=8081
|
@ -4,12 +4,11 @@
|
|||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# MySQL
|
# MySQL
|
||||||
# The SQL port is not exposed outside the container
|
|
||||||
########################################################################
|
########################################################################
|
||||||
MYSQL_ROOT_PASSWORD=root
|
MYSQL_ROOT_PASSWORD=root
|
||||||
MYSQL_DATABASE=ClusterCockpit
|
MYSQL_DATABASE=ClusterCockpit
|
||||||
MYSQL_USER=symfony
|
MYSQL_USER=clustercockpit
|
||||||
MYSQL_PASSWORD=symfony
|
MYSQL_PASSWORD=clustercockpit
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# PHPMyAdmin
|
# PHPMyAdmin
|
||||||
|
Loading…
Reference in New Issue
Block a user