54 lines
1.4 KiB
Markdown
54 lines
1.4 KiB
Markdown
# Contract Migration
|
|
|
|
Common docker artifacts and bootstrap scripts
|
|
|
|
## How this repo works
|
|
|
|
This repo builds contracts and deploys them to a chain
|
|
|
|
First, bring up an eth evm provider
|
|
```
|
|
docker-compose up eth
|
|
```
|
|
|
|
Now build this repo's image and run it against the 'eth' service (ganache, for example). You will need to bind to the docker-compose network (cic-network) and mount the special contract output folder that dependent services use to get deployed contract addresses.
|
|
|
|
Here is how to do that in one shot:
|
|
```
|
|
docker build -t registry.gitlab.com/grassrootseconomics/cic-docker-internal -f docker/ . && docker run --env ETH_PROVIDER=http://eth:8545 --net cic-network -v cic-docker-internal_contract-config:/tmp/cic/config --rm -it registry.gitlab.com/grassrootseconomics/cic-docker-internal reset.sh
|
|
```
|
|
|
|
Stop the containers and bring down the services with
|
|
```
|
|
docker-compose down
|
|
```
|
|
|
|
If you want a fresh start to the dev environment then bring down the services and delete their associated volumes with
|
|
|
|
```
|
|
docker-compose down -v
|
|
```
|
|
|
|
A goal is to go through all of these containers and create a default non-root user a la:
|
|
https://vsupalov.com/docker-shared-permissions/
|
|
|
|
## Tips and Tricks
|
|
|
|
Sometimes you just want to hold a container open in docker compose so you can exec into it and poke around. Replace "command" with
|
|
|
|
```
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
tail -f /dev/null
|
|
```
|
|
then
|
|
|
|
```
|
|
docker exec -it [IMAGE_NANE] sh
|
|
```
|
|
|
|
---
|
|
|