The Cheminformatics Microservice project utilizes the containerized microservices approach to package chemistry toolkits and deep learning tools. It comes pre-packaged with toolkits RDKit, CDK, OpenBabel and deep learning tools (DECIMER, STOUT) for handling chemical data - OSR, format conversions, and descriptor calculation. This enables efficient handling of large data volumes and improved performance and development of cheminformatics applications that are scalable and interoperable.
It is containerized using Docker and is distributed publicly via the Docker Hub, a cloud-based registry provided by Docker that allows developers to store, share, and distribute Docker images.
To use this image:
- Make sure you have Docker installed and configured on your target deployment environment.
- Pull the image by providing the appropriate tag.
docker pull nfdi4chem/cheminformatics-microservice:[tag]
- Run the below command to run the image
docker run -d -p 8080:80 --name [image-name] nfdi4chem/cheminformatics-microservice:[tag]
Docker Compose is a handy tool that allows you to define and manage multi-container applications. By creating a YAML file to define the services, you can use a simple command to start or stop everything at once. Check out https://docs.docker.com/get-started/08_using_compose/ for more information.
The Cheminformatics Microservice is readily equipped with a docker-compose file that enables you to effortlessly deploy your application on your server. To deploy your application using Docker compose, simply follow the steps described below.The Cheminformatics Microservice comes packaged with a docker-compose file, which you can use to deploy your application on your server. To deploy using Docker compose, follow the steps described below.
- Before you run the command make sure you've installed Docker including docker-compose support. More details here.
- Clone the repository
git clone https://github.com/Steinbeck-Lab/cheminformatics-microservice.git
- Start the application
docker-compose -f ops/docker-compose-prod.yml up -d
For better performance you can scale your application using docker-compose builtin scaling support. Requests are load balanced by Traefik. For example to scale upto 3 additional application containers you can simply invoke:
docker-compose -f ops/docker-compose-prod.yml up -d --scale web=3 --no-recreate