proteus-dockertest
A set of services, clients, and Docker Compose files that can be used for setting up arbitrary Netifi Proteus environments for the purposes of testing the Proteus Broker and other Proteus components.
Prerequisites
This project requires that you have following installed:
Building the Test Environments
Build the environment by running the following Gradle command:
$ ./gradlew clean webpack build
Running the Test Environments
The following commands will bootstrap a test environment for you using Docker Compose.
Note: If you are not using a Mac, you will need to remove or modify the NETIFI_PROTEUS_BROKERHOSTNAME
environment variable being
supplied to both the server and client containers to match your docker host.
Single Broker
Running the following command will start a single broker with a client and service attached:
$ docker-compose pull && docker-compose up
Broker Cluster
Running the following command will start a cluster of three brokers with a client and service attached:
$ docker-compose pull && docker-compose -f docker-compose-cluster.yml up
Development
Publishing Containers to Docker Hub
Follow the steps below to publish new dockertest containers to Docker Hub:
-
Add a
gradle-local.properties
file to the root project.The gradle-local.properties file is a user-specific Gradle configuration file that will contain your DockerHub credentials.
-
Add your Docker Hub credentials to the
gradle-local.properties
file as follows:dockerUsername={username} dockerPassword={password}
-
Run the following Gradle command:
$ ./gradlew clean build pushImage
Bugs and Feedback
For bugs, questions, and discussions please use the Github Issues.
License
Copyright 2018 Greg Whitaker
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.