forked from cerc-io/stack-orchestrator
		
	Merge pull request #44 from cerc-io/dboreham/build-mobymask-watcher
Build watcher container
This commit is contained in:
		
						commit
						cc491263f5
					
				
							
								
								
									
										61
									
								
								compose/docker-compose-watcher-mobymask.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								compose/docker-compose-watcher-mobymask.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | ||||
| version: '3.2' | ||||
| 
 | ||||
| services: | ||||
| 
 | ||||
|   watcher-db: | ||||
|     restart: unless-stopped | ||||
|     image: postgres:14-alpine | ||||
|     environment: | ||||
|       - POSTGRES_USER=vdbm | ||||
|       - POSTGRES_MULTIPLE_DATABASES=mobymask-watcher,mobymask-watcher-job-queue | ||||
|       - POSTGRES_EXTENSION=mobymask-watcher-job-queue:pgcrypto | ||||
|       - POSTGRES_PASSWORD=password | ||||
|     volumes: | ||||
|       - ../common/initdb.d/multiple-postgressql-databases.sh:/docker-entrypoint-initdb.d/multiple-postgressql-databases.sh | ||||
|       - watcher_db_data:/var/lib/postgresql/data | ||||
|     ports: | ||||
|       - "0.0.0.0:15432:5432" | ||||
|     healthcheck: | ||||
|       test: ["CMD", "nc", "-v", "localhost", "5432"] | ||||
|       interval: 20s | ||||
|       timeout: 5s | ||||
|       retries: 15 | ||||
|       start_period: 10s | ||||
| 
 | ||||
|   mobymask-watcher-server: | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       watcher-db: | ||||
|         condition: service_healthy | ||||
|     image: cerc/watcher-mobymask:local | ||||
|     command: ["sh", "-c", "yarn server"] | ||||
|     volumes: | ||||
|       - ../common/watcher-ts/mobymask-watcher.toml:/app/packages/mobymask-watcher/environments/local.toml | ||||
|     ports: | ||||
|       - "0.0.0.0:3001:3001" | ||||
|       - "0.0.0.0:9001:9001" | ||||
|     healthcheck: | ||||
|       test: ["CMD", "nc", "-v", "localhost", "3001"] | ||||
|       interval: 20s | ||||
|       timeout: 5s | ||||
|       retries: 15 | ||||
|       start_period: 5s | ||||
| 
 | ||||
|   mobymask-watcher-job-runner: | ||||
|     restart: unless-stopped | ||||
|     depends_on: | ||||
|       mobymask-watcher-server: | ||||
|         condition: service_healthy | ||||
|       watcher-db: | ||||
|         condition: service_healthy | ||||
|     image: cerc/watcher-mobymask:local | ||||
|     command: ["sh", "-c", "yarn job-runner"] | ||||
|     volumes: | ||||
|       - ../common/watcher-ts/mobymask-watcher.toml:/app/packages/mobymask-watcher/environments/local.toml | ||||
|     ports: | ||||
|       - "0.0.0.0:9000:9000" | ||||
| 
 | ||||
| volumes: | ||||
|   indexer_db_data: | ||||
|   watcher_db_data: | ||||
|    | ||||
							
								
								
									
										27
									
								
								container-build/cerc-watcher-mobymask/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								container-build/cerc-watcher-mobymask/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| # TODO: move this into the cerc-io/mobymask-watcher repo | ||||
| FROM node:16.17.1-alpine3.16 | ||||
| 
 | ||||
| RUN apk --update --no-cache add git python3 alpine-sdk | ||||
| 
 | ||||
| WORKDIR /app | ||||
| 
 | ||||
| COPY assemblyscript assemblyscript | ||||
| COPY watcher-ts watcher-ts | ||||
| 
 | ||||
| # TODO: needs branch ng-integrate-asyncify | ||||
| # We use a mixture of npm and yarn below because the upstream | ||||
| # project checked in an npm package-log.json file | ||||
| RUN echo "Building assemblyscript" && \ | ||||
|     cd assemblyscript && \ | ||||
|     npm install && npm run build && yarn link | ||||
| 
 | ||||
| # TODO: needs branch v0.2.13 | ||||
| # The shenanigans below is due to yarn and lerna being a dumpster-fire | ||||
| RUN echo "Linking watcher-ts to local assemblyscript" && \ | ||||
|     cd watcher-ts/packages/graph-node && yarn remove @vulcanize/assemblyscript && \ | ||||
|     yarn add https://github.com/vulcanize/assemblyscript.git#ng-integrate-asyncify | ||||
| 
 | ||||
| RUN echo "Building watcher-tst" && \ | ||||
|     cd watcher-ts && yarn && yarn link "@vulcanize/assemblyscript" && yarn build | ||||
| 
 | ||||
| WORKDIR /app/watcher-ts/packages/mobymask-watcher | ||||
							
								
								
									
										8
									
								
								container-build/cerc-watcher-mobymask/build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								container-build/cerc-watcher-mobymask/build.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,8 @@ | ||||
| #!/usr/bin/env bash | ||||
| # Build cerc/watcher-mobymask | ||||
| 
 | ||||
| # See: https://stackoverflow.com/a/246128/1701505 | ||||
| SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) | ||||
| 
 | ||||
| # TODO: add a mechanism to pass two repos into a container rather than the parent directory as below | ||||
| docker build -t cerc/watcher-mobymask:local -f ${SCRIPT_DIR}/Dockerfile ${CERC_REPO_BASE_DIR} | ||||
| @ -12,4 +12,5 @@ cerc/laconicd | ||||
| cerc/laconic-cns-cli | ||||
| cerc/fixturenet-eth-geth | ||||
| cerc/fixturenet-eth-lighthouse | ||||
| cerc/watcher-mobymask | ||||
| cerc/test-container | ||||
|  | ||||
| @ -9,3 +9,6 @@ vulcanize/ipld-eth-beacon-indexer | ||||
| vulcanize/ipld-eth-beacon-db | ||||
| cerc-io/laconicd | ||||
| cerc-io/laconic-cns-cli | ||||
| cerc-io/mobymask-watcher | ||||
| cerc-io/watcher-ts | ||||
| vulcanize/assemblyscript | ||||
|  | ||||
| @ -2,3 +2,22 @@ | ||||
| 
 | ||||
| ## Set up a Mobymask Watcher | ||||
| 
 | ||||
| ## Clone required repositories | ||||
| ``` | ||||
| $ laconic-so setup-repositories | ||||
| ``` | ||||
| Checkout required branches: | ||||
| ``` | ||||
| $ cd ~/cerc/assemblyscript | ||||
| $ git checkout ng-integrate-asyncify | ||||
| $ cd ~/cerc/watcher-ts | ||||
| $ git checkout v0.2.13 | ||||
| ``` | ||||
| ## Build the watcher container | ||||
| ``` | ||||
| $ laconic-sh build-containers --include cerc/watcher-mobymask | ||||
| ``` | ||||
| ## Deploy the stack | ||||
| ``` | ||||
| $ laconic-sh deploy-system --include watcher-mobymask | ||||
| ``` | ||||
							
								
								
									
										8
									
								
								stacks/mobymask/stack.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								stacks/mobymask/stack.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| name: mobymask-watcher | ||||
| repos: | ||||
|   - cerc-io/watcher-ts/v0.2.13 | ||||
|   - vulcanize/assemblyscript/ng-integrate-asyncify | ||||
| containers: | ||||
|   - cerc/watcher-mobymask | ||||
| pods: | ||||
|   - watcher-mobymask | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user