Data source connectors are a vital part of LoopBack that provide access to back-end data. Connectors typically provide access to an external database system. However, setting up a database system for development can be a barrier because it can be difficult to:
- Download and install the database system.
- Set up the database.
- Isolate tests run against a database.
To remove this barrier, we need a simple way to set up and tear down a database service on request.
Docker has gained popularity because it enables packaging an application and its dependencies into a virtual container for deployment, and it provides the perfect solution for this problem.
Docker provides images for almost all popular databases via the
Docker Hub Registry. You use these images to spawn local containers. Once the container for the database service is up and running, you can use it for development and testing and easily dispose it when done.
Each of the following connector modules has a bash script (typically called
setup.sh) to set up a Docker container for the database:
- SQL connectors
- NoSQL connectors
How to spawn the container
The Docker setup script (
The prerequisites for running the script are:
- If necessary, install Bash shell. MacOS and many Linux systems come with a Bash shell.
For example, consider the script for MySQL. To run the script:
- Git clone the repository:
git clone https://github.com/strongloop/loopback-connector-mysql.git
- Change directory to the cloned repository and run
npm installto get the required dependencies:
cd loopback-connector-mysql npm install
- Run the script one of two ways:
- Use the
- Running the script and exporting the database specific environmental variables manually:
sh setup.sh MYSQL_USERNAME=<username> MYSQL_PASSWORD=<password> MYSQL_DATABASE=<db_name> MYSQL_PORT=<port>
- Use the
For more information on how to run the customized shell script, read the documentation in each repository.
For example, visit How to run tests on MySQL for more information.
Here is an example of how to run the script to setup a Docker container for the MySQL connector:
This new feature will enable community contributors to use, test, and develop LoopBack data source connectors more easily than ever. Thanks to Docker, it has never been easier to contribute code in all LoopBack connector modules.
Lowering barriers to entry improves the contribution experience for all, and we’d love to see your contributions in the future!