# Copyright © 2020 Interplanetary Database Association e.V., # Planetmint and IPDB software contributors. # SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0) # Code is Apache-2.0 and docs are CC-BY-4.0 version: '2.2' services: # Build: docker-compose build -d planetmint # Run: docker-compose run -d bdb mongodb: image: mongo:3.6 ports: - "27017:27017" command: mongod restart: always tarantool: image: tarantool/tarantool:2.10.4 ports: - "5200:5200" - "3301:3301" - "3303:3303" - "8081:8081" volumes: - ./planetmint/backend/tarantool/init.lua:/opt/tarantool/init.lua entrypoint: tarantool /opt/tarantool/init.lua restart: always planetmint: depends_on: - mongodb - tendermint - tarantool build: context: . dockerfile: Dockerfile volumes: - ./planetmint:/usr/src/app/planetmint - ./tests:/usr/src/app/tests - ./docs:/usr/src/app/docs - ./htmlcov:/usr/src/app/htmlcov - ./setup.py:/usr/src/app/setup.py - ./setup.cfg:/usr/src/app/setup.cfg - ./pytest.ini:/usr/src/app/pytest.ini environment: PLANETMINT_DATABASE_BACKEND: tarantool_db PLANETMINT_DATABASE_HOST: tarantool PLANETMINT_DATABASE_PORT: 3303 PLANETMINT_SERVER_BIND: 0.0.0.0:9984 PLANETMINT_WSSERVER_HOST: 0.0.0.0 PLANETMINT_WSSERVER_ADVERTISED_HOST: planetmint PLANETMINT_TENDERMINT_HOST: tendermint PLANETMINT_TENDERMINT_PORT: 26657 ports: - "9984:9984" - "9985:9985" - "26658" - "2222:2222" healthcheck: test: ["CMD", "bash", "-c", "curl http://planetmint:9984 && curl http://tendermint:26657/abci_query"] interval: 3s timeout: 5s retries: 5 command: 'planetmint -l DEBUG start' restart: always tendermint: image: tendermint/tendermint:v0.34.15 # volumes: # - ./tmdata:/tendermint entrypoint: '' ports: - "26656:26656" - "26657:26657" command: sh -c "tendermint init && tendermint node --consensus.create_empty_blocks=false --rpc.laddr=tcp://0.0.0.0:26657 --proxy_app=tcp://planetmint:26658" restart: always bdb: image: busybox depends_on: planetmint: condition: service_healthy # curl client to check the health of development env curl-client: image: appropriate/curl command: /bin/sh -c "curl -s http://planetmint:9984/ > /dev/null && curl -s http://tendermint:26657/ > /dev/null" # Build docs only # docker-compose build bdocs # docker-compose up -d bdocs bdocs: depends_on: - vdocs build: context: . dockerfile: Dockerfile args: backend: tarantool_db volumes: - .:/usr/src/app/ command: make -C docs/root html vdocs: image: nginx ports: - '33333:80' volumes: - ./docs/root/build/html:/usr/share/nginx/html # Remove all build, test, coverage and Python artifacts clean: image: alpine command: /bin/sh -c "./planetmint/scripts/clean.sh" volumes: - $PWD:/planetmint