This repository contains files required to create CressExpress setup using docker-compose. This approach will save tedious job of configuring different components of cressexpress.
Note: CressExpress war file is downloaded from CressExpress main repository.
- Storage: 20 GB min
- System Memory: depends on load; 64 Gb recommended, 12 Gb bare minimum
- Docker (if running on MAC/Windows assign min 12GB of RAM to virtual machine used by Docker: Docker settings-> Advanced -> Memory)
- Docker-compose
- Git
- Install git, docker:
sudo yum -y install git docker - Start Docker deamon:
sudo service docker start - Install docker compose. Make it executable. (Tested with version 1.21.2)
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` > docker-compose
chmod +x docker-compose
sudo chown root docker-compose
sudo chgrp root docker-compose
sudo mv docker-compose /usr/local/bin/.
- If you are using Windows platform please follow these steps first
- Open git-bash
- type following command
git config --global core.autocrlf false
- Proceed to next section
- Clone this repository to your machine
- Open terminal (bash for Windows) inside the local copy
- Run
cressexpress.sh - Follow on-screen instruction
- Provide RAM size (should be greater than equal to 12 GB)
- Provide hostname required for Apache and email links
- Email contains links of results generated after analysis. This hostname is essential for users to download results.
- Select one of three options
- localhost: if you are running cressexpress on your machine
- Custom domain: if you have your personal domain setup
- IP Address: if you dont have custom domain but this setup executed on remote host (for eg AWS EC2)
- Wait for the success message
- Open terminal (unix/linux) or CMD/Powershell (Windows) inside the local copy
- Run
sudo docker-compose up - Wait till it builds all docker containers (cressexpress_apache, cressexpress_wildfly, cressexpress_mysql)
- Messages will be printed to the screen, untill the following:
- Open web browser and visit the host name you entered in the previous step.
- To start already existing containers:
- Go to the local copy:
docker-compose start
- Go to the local copy:
- Stop already running containers:
- Go to the local copy:
docker-compose stop
- Go to the local copy:
- Remove the continers:
- Go to the local copy, stop the containers, then run:
docker-compose rm
- Go to the local copy, stop the containers, then run:
- Get a list of running containers:
docker lsdocker exec -it [container id] bash
- View and query the CressExpress database
- enter the container
- launch mysql client:
mysql -u root -p cressexpress - at mysql prompt, view available databases:
show database - check jobs table:
use cressexpress; select email from jobs
- Copy a files to and from a container
- from a container to current directory:
docker cp [container id]:[filename.txt] .
- from a container to current directory:
- apache
- Backup
- This contains base httpd.conf and docker-compose.yml. These files have placeholders for some custom configuration.
- cressexpress (if you want to run your war file check this)
- mysql
- cressexpress.sh
- This file rquired to be executed before running docker-compose up
- It does the job of prepopolating some required folders and database flat files required for the cressexpress
- Following image has details imformation related to all commands and their purpose
- Getting latest war file from bitbukcet pipelines of cressexpress (wget)
- Getting data files from remote host (wget)
- Data folder is fetched in form of .tar.gz file and then decompressed into data folder
- The data folder contains following files:
- env/data/ -> Results are stored in /results folderonce analysis is done. This folder also contains few file required for analysis 'exprRowData.txt
- env/lucene -> This folder is used to stored indexs related to analysis
- env/wildfly -> This folder contains files required for wildlfy server Jdk and java mysql driver
- Note: If you want to move your insfrastructure to a new host machine, Please back up this folder if you want to store the analysis results. And replace it with with data folder on new host.
- Getting flat database file from remote host (wget)
- Database flat files are fetched in form of .tar.gz file and then decompressed unde rmysql folder as var and etc subfolders.
- var/lib/cressexpress/ -> contains all flat database files.
- Other commands are used for error handling and data validations
- docker-compose.yml