mirror of
https://github.com/planetmint/planetmint.git
synced 2025-03-30 15:08:31 +00:00

* updated Dockerfile-all-in-one Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * adjusted all-in-one.bash and monit conf to work with dockerized setup Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * integration tests pass inconsistently Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * added timeout for integration test pass Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * add startup control logic, adjusted tests to wait for transactions Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * added pre-config for docker-compose approach, removed remnants of old integration tests Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * reverted changes to pkg, split pre-config, added clean-shared service Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fixed path in all-in-one.bash Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * added ipdb copyright notice Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * chmod planetmint-monit-config Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * removed entrypoint from Dockerfile-all-in-one Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * added integration stage to travis matrix Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * removed unused secret Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * changed pre-config and docker-compose.integration.yml to support scaling Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * using env var to control number of nodes Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * make test-integration now scalable Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * added make docs-integration, added .gitignore to python integration tests, updated readme and removed clutter Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * fixed linter errors Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * disable planetmint for test purpose Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * test docker-compose down Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * disable every job except integration test Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * need more logs Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * name collision? Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * reverted changes to debug ci Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com> * added TODO for ci optimization Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
134 lines
3.7 KiB
YAML
134 lines
3.7 KiB
YAML
# 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
|
|
planetmint:
|
|
depends_on:
|
|
- mongodb
|
|
- tendermint
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile-dev
|
|
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
|
|
- ./tox.ini:/usr/src/app/tox.ini
|
|
environment:
|
|
PLANETMINT_DATABASE_BACKEND: localmongodb
|
|
PLANETMINT_DATABASE_HOST: mongodb
|
|
PLANETMINT_DATABASE_PORT: 27017
|
|
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"
|
|
healthcheck:
|
|
test: ["CMD", "bash", "-c", "curl http://planetmint:9984 && curl http://tendermint:26657/abci_query"]
|
|
interval: 3s
|
|
timeout: 5s
|
|
retries: 3
|
|
command: '.ci/entrypoint.sh'
|
|
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"
|
|
|
|
# Planetmint setup to do acceptance testing with Python
|
|
python-acceptance:
|
|
build:
|
|
context: .
|
|
dockerfile: ./acceptance/python/Dockerfile
|
|
volumes:
|
|
- ./acceptance/python/docs:/docs
|
|
- ./acceptance/python/src:/src
|
|
environment:
|
|
- PLANETMINT_ENDPOINT=planetmint
|
|
|
|
# Planetmint setup to do integration testing wtih Python
|
|
python-integration:
|
|
build:
|
|
context: .
|
|
dockerfile: ./integration/python/Dockerfile
|
|
volumes:
|
|
- ./integration/python/docs:/docs
|
|
- ./integration/python/src:/src
|
|
environment:
|
|
- PLANETMINT_ENDPOINT_1=https://itest1.planetmint.io
|
|
- PLANETMINT_ENDPOINT_2=https://itest2.planetmint.io
|
|
|
|
# Build docs only
|
|
# docker-compose build bdocs
|
|
# docker-compose up -d bdocs
|
|
bdocs:
|
|
depends_on:
|
|
- vdocs
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile-dev
|
|
args:
|
|
backend: localmongodb
|
|
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
|
|
|
|
# Lints project according to PEP8
|
|
lint:
|
|
image: alpine/flake8
|
|
command: --max-line-length 119 /planetmint /acceptance /integration /tests
|
|
volumes:
|
|
- ./planetmint:/planetmint
|
|
- ./acceptance:/acceptance
|
|
- ./integration:/integration
|
|
- ./tests:/tests
|
|
|
|
# Remove all build, test, coverage and Python artifacts
|
|
clean:
|
|
image: alpine
|
|
command: /bin/sh -c "./planetmint/scripts/clean.sh"
|
|
volumes:
|
|
- $PWD:/planetmint |