Configure Polywrap infrastructure pipeline
The Polywrap CLI
infra command interacts with an Infra Manfiest
polywrap.infra.yaml file to to help users manage local infrastructure for their wrappers.
The Infra Manifest declares environmental variables and infrastructure modules that describe the locations of
local, remote, or default docker-compose files.
The Polywrap CLI
infra command reads the manifest and launches or halts
modules as directed by the user.
Unlike some manifests, the Infra Manifest does not need to be declared in your Polywrap manifest.
The Infra Manifest consists of environmental variable declarations and one or more infrastructure modules. Each module points to a local, remote, or default docker-compose file.
An Infra Manifest can declare any number of infrastructure modules. Polywrap currently supports three types of infrastructure modules:
- A local module exists on your local filesystem.
- A remote module is a package hosted by a package registry.
- The default module is included with the CLI.
A local infrastructure module is a path from the Infra Manifest to a local folder with a docker-compose file.
A remote infrastructure module is a package hosted at a package registry. The package must contain a docker-compose file. The path to the docker-compose file must be declared in the Infra Manifest if the file is not located in the package root.
Remote packages can be shared. Users can add remote packages to their manifest to replicate the infrastructure modules defined by other users or projects.
A default infrastructure module is included with the
It is declared in the Infra Manifest as a module named eth-ens-ipfs and the value default.
If an Infra Manifest is not found, the Polywrap CLI
infra command can still use
To use the default module without an Infra Manifest, pass
eth-ens-ipfs as an argument to the
The default infrastructure module defines a docker container with:
- A test server at http://localhost:4040
- A Ganache Ethereum test network at http://localhost:8545
- An IPFS node at http://localhost:5001
It also sets up ENS smart contracts at initialization, so you can build wrappers and deploy them to an ENS registry on your locally hosted testnet. The Ethereum address of the ENS registry is 0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab.