Select Git revision
docker-compose.yml
Jonas Theis
authored and
GitHub
committed
* Add docker compose for running integration tests. Runs entry_node and arbitrary number of peers in docker network * Fix permission denied in container if run without mounting a `rw` volume making it possible to run as throw-away container. Remove `VOLUME` from Dockerfile as this only pollutes host system with anonymous volumes. * Use named network for easier external use * Add test container that discovers peers and waits for autopeering to happen * Fix min waitForNeighbors * Add go.sum * Run integration tests with Github Actions * Added framework that abstracts the docker network and provides convenience functionality * Update directory in Github Actions * Add bash script for automated local test execution * Add getMessageByHash endpoint * Adjust to merge changes * Add methods to easily do HTTP POST requests * Added relay message test * Increase client timeout * Verbose output for tests makes it easier to follow the execution * Introduce small API wrapper for GoShimmer HTTP API * Adjust relay test to use new API wrapper * WIP: Docker logs * Fix issue with serving visualizer analysis server of entry node * Persist logs of containers after CI run * Fix test file * Fix uploading of artifacts * Save all containers' logs as artifacts * Create logs files also with local run * Add possibility to retrieve logs from a peer via Docker logs * Make tester part of the goshimmer module to make code sharing possible * Use client/lib to make HTTP requests in tester * Fix unit test directory * Add comments/doc to the code * Add readme * Move tester to own module and don't build container but use existing golang one instead * Address PR comments * Adjust to merge * Only use 1 config file for all containers * go mod tidy * Rename client lib base url
docker-compose.yml 1.39 KiB
version: "3.5"
services:
entry_node:
command: --autopeering.seed=uuDCzsjyLNQ17/7fWKPNMYmr4IWuaVRf7qKqRL0v/6c= --autopeering.entryNodes= --analysis.server.port=1888 --node.disablePlugins=gossip,portcheck,spa,webapi,webapibroadcastdataendpoint,webapifindtransactionhashesendpoint,webapigetneighborsendpoint,webapigettransactionobjectsbyhashendpoint,webapigettransactiontrytesbyhashendpoint
container_name: entry_node
image: iotaledger/goshimmer
build:
context: ../..
volumes:
- ./config.docker.json:/config.json:ro
ports:
- "9000:9000/tcp" # visualizer
expose:
- "1888/tcp" # analysis server (within Docker network)
networks:
- integration-test
peer_master:
container_name: peer_master
image: iotaledger/goshimmer
build:
context: ../..
volumes:
- ./config.docker.json:/config.json:ro
ports:
- "8080:8080/tcp" # web API
- "8081:8081/tcp" # dashboard
depends_on:
- entry_node
networks:
- integration-test
peer_replica:
command: --node.disablePlugins=spa
image: iotaledger/goshimmer
build:
context: ../..
volumes:
- ./config.docker.json:/config.json:ro
expose:
- "8080/tcp" # web API (within Docker network)
depends_on:
- entry_node
networks:
- integration-test
networks:
integration-test:
driver: bridge
name: integration-test