The Eiffel Sandbox provides a Docker image where multiple Eiffel actors and event services are pre-configured in a single life-like environment. This lets users and developers play around with and try out Eiffel concepts and implementations in a safe setting with a minimum of effort. To get started, see How to Run and How it Works below.
Note: At present, the sandbox includes several implementations to be contributed to open source in the very near future. The Docker images are available, but the sources are not yet. Please stay tuned for the sources to turn up on GitHub soon.
The contents of this repository are licensed under the Apache License 2.0.
To get involved, please see Code of Conduct and contribution guidelines.
This repository forms part of the Eiffel Community. Eiffel is a protocol for technology agnostic machine-to-machine communication in continuous integration and delivery pipelines, aimed at securing scalability, flexibility and traceability. Eiffel is based on the concept of decentralized real time messaging, both to drive the continuous integration and delivery system and to document it.
Visit Eiffel Community to get started and get involved.
Docker and Docker-Compose tool is required to use Eiffel Sandbox:
- Docker CE Linux Ubuntu installation guide
- Docker for Windows installation guide
- Docker-Compose tool Linux and Windows installation guide
To run the Eiffel Sandbox, you need Docker and Docker Compose.
- Clone the repo:
git clone https://github.com/eiffel-community/eiffel-sandbox.git
- Use bash shell and execute:
source env.bash
- In the repo root, run Docker Compose:
docker-compose up
To run specific services, add the service name to the command. For instance, to run only the event repository:docker-compose up eiffel-er
. Service names can be found in docker-compose.yml.
This will started multiple Eiffel services and tools with Eiffel plugins. The containers of primary interest can be accessed at the exposed ports below. Note that the hostname depends on your local environment, and that all services are accessed from the host via these exposed mapped ports (<hostname>:<port>
). The service names are only usable from within the Docker virtual network. For additional containers and detailed port configurations, please refer to docker-compose.yml.
- Eiffel Intelligence Backend Artifact Backend: 8070
- Eiffel Intelligence Backend Source Change Backend: 8072
- Eiffel Intelligence Backend Test Execution Backend: 8074
- Eiffel Intelligence Backend All Events Backend: 8076
- Eiffel Intelligence Frontend EI Frontend for all EI Backends: 8077
NOTE!: Do not use 'localhost' in web-browser when accessing Eiffel Intelligence Frontend web page.
Switch backend functionality do not work when using 'localhost' address. Use Docker Host Ip address instead. - Nexus Repository: 8081 (admin/admin123)
- Jenkins 1 with Eiffel Jenkins Plugin: 8082 (admin/admin)
- Jenkins 2 with Eiffel Jenkins Plugin: 8083 (admin/admin)
- Eiffel Vici: 8092
- Eiffel Event Repository: 8084
- Remrem Generate: 8095
- Remrem Publish: 8096
- RabbitMQ: 15672 (myuser/myuser)
To stop the services, hit ctrl + c
, then run docker-compose down --volumes
. Note that this will keep the images cached, which will shorten the startup time. Further volume and image management via regular Docker commands (see Docker Documentation).