Prerequisites ############# Dependencies ----------------- To solve the assignment, you require the following tools * Java 11 * `Apache Maven `_ 3+ * `Docker `_ 20.10.12+ * `Docker Compose `_ 2.2.3+ We use Docker (Compose) to host a small development environment on your host. Docker Compose --------------- Throughout the course, you will work with several other technologies. To save you from the hassle of installing and configuring additional system dependencies for these technologies, we provide a compact development environment as a docker-compose file. To run it, first install Docker and Docker Compose. In the code :doc:`/template`, find the ``docker/`` folder containing the ``docker-compose.yml``. This file defines the services and parameters. From the folder, you can now start the services by simply running:: docker-compose up or start it in detached mode:: docker-compose up -d You can verify that all services started successfully via ``docker ps`` (i.e., ``docker_redis_1`` & ``docker_rabbitmq_1``). You can stop the containers with:: docker-compose stop or stop and remove them with:: docker-compose down The first command will not remove the containers and therefore saves the state of the applications. Which might be useful during development. The services defined in the docker-compose file are deployed in the network named "dst". If you want that your docker containers you are running can access the services from docker-compose, append your ``docker run`` command with ``--network dst``. Further, the compose file exposes the service ports to your host. That means you can also access them via ``127.0.0.1``. We include detailed instructions to interact with each service in their respective assignment.