diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..734851cc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,16 @@ +# root and vendor modules +node_modules +*/**/node_modules + +# generated code +dist +src/types + +# not needed +docs +.run +.github +*.md +*/**/.md +*/**/.png +*/**/.jpg diff --git a/.run/Localdev.run.xml b/.run/Localdev.run.xml new file mode 100644 index 00000000..ba767f7f --- /dev/null +++ b/.run/Localdev.run.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docker-compose.yml b/docker-compose.yml index 9b14be4d..311d0639 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,22 @@ services: timeout: 5s retries: 5 + pgadmin: + image: dpage/pgadmin4:8.8 + container_name: pgadmin + restart: always + environment: + PGADMIN_DEFAULT_EMAIL: admin@local.dev + PGADMIN_DEFAULT_PASSWORD: admin + PGADMIN_LISTEN_PORT: 5050 + volumes: + - ./docker/postgres/servers.json:/pgadmin4/servers.json + depends_on: + postgres: + condition: service_healthy + ports: + - 5050:5050 + # Note: The proxy service is only necessary if you are running a Shannon # localnet and are unable to use the docker network in bridge mode. # To use the proxy service you must run the following command on the host @@ -85,4 +101,4 @@ services: volumes: postgres_data: - driver: local \ No newline at end of file + driver: local diff --git a/docker/node.dockerfile b/docker/node.dockerfile index 71b9fee9..5fb38f12 100644 --- a/docker/node.dockerfile +++ b/docker/node.dockerfile @@ -47,4 +47,4 @@ ADD ./project.ts schema.graphql /app/ ADD ./scripts/node-entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh -ENTRYPOINT ["/sbin/tini", "--", "/entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/sbin/tini", "--", "/entrypoint.sh"] diff --git a/docker/postgres/servers.json b/docker/postgres/servers.json new file mode 100644 index 00000000..2056f3c3 --- /dev/null +++ b/docker/postgres/servers.json @@ -0,0 +1,13 @@ +{ + "Servers": { + "1": { + "Name": "admin@local.dev", + "Group": "Localnet", + "Host": "postgres", + "Port": 5432, + "MaintenanceDB": "postgres", + "Username": "postgres", + "SSLMode": "prefer" + } + } +} diff --git a/package.json b/package.json index f776c1ab..01cc89e2 100644 --- a/package.json +++ b/package.json @@ -9,20 +9,22 @@ "vendor:subql:install": "cd vendor && yarn workspace @subql/node-cosmos install", "vendor:cosmjs:build": "cd vendor && yarn workspace cosmjs-monorepo-root run build", "vendor:subql:build": "cd vendor && yarn workspace @subql/node-cosmos run build", - "vendor:clean": "cd vendor && rm -rf node_modules && find ./ -type d -name 'node_modules' -exec sh -c 'rm -rf \"$0\"/*' {} \\;", - "docker:build": "docker-compose build", - "docker:build:no-cache": "docker-compose build --no-cache", - "build": "subql codegen && sed -i 's/\\[key: bigint\\]/\\[key: number\\]/g' ./src/types/proto-interfaces/poktroll/application/application.ts && subql build", + "vendor:clean": "cd vendor && find . -name node_modules | xargs rm -rf && find . -name dist | xargs rm -rf", + "docker:build": "docker compose build", + "docker:build:no-cache": "docker compose build --no-cache", + "build": "subql codegen && sed -i 's/\\[key: bigint\\]/\\[key: number\\]/g' ./src/types/proto-interfaces/poktroll/application/application.ts && subql build", "build:develop": "NODE_ENV=develop subql codegen && sed -i 's/\\[key: bigint\\]/\\[key: number\\]/g' ./src/types/proto-interfaces/poktroll/application/application.ts && NODE_ENV=develop subql build", "codegen": "subql codegen", - "docker:start": "docker-compose pull && docker-compose up --remove-orphans", - "docker:stop": "docker-compose down", + "docker:start": "docker compose pull && docker compose up --remove-orphans", + "docker:stop": "docker compose down", "docker:clean": "yarn docker:stop && docker volume rm pocketdex_postgres_data", "docker:tunnel": "echo 'if public key auth fails the password is `proxypass`.' && ssh -o StrictHostKeyChecking=no -N -R 26657:localhost:26657 proxyuser@localhost -p 2222", - "dev": "subql codegen && subql build && docker-compose pull && docker-compose up --remove-orphans", + "docker:dev:local": "docker compose up -d postgres pgadmin graphql-engine", + "dev:docker": "subql codegen && subql build && docker compose pull && docker compose up --remove-orphans", + "dev:local": "NODE_ENV=develop node vendor/subql-cosmos/packages/node/bin/run -f=./ --db-schema=app --workers=1 --batch-size=10 --unfinalized-blocks=true", "prepack": "rm -rf dist && npm run build", "test": "subql build && subql-node-cosmos test", - "db:clean": "docker volume rm pocketdex_postgres_data" + "db:clean": "docker compose down -v" }, "homepage": "https://github.com/subquery/cosmos-subql-starter", "repository": "github:subquery/cosmos-subql-starter",