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.
#
DeclarationUnlike some manifests, the Infra Manifest does not need to be declared in your Polywrap manifest.
#
ContentThe 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.
- Schema
- Example
#
Infrastructure ModulesAn 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.
#
LocalA local infrastructure module is a path from the Infra Manifest to a local folder with a docker-compose file.
#
RemoteA 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.
#
DefaultA default infrastructure module is included with the polywrap
CLI.
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
this module.
To use the default module without an Infra Manifest, pass eth-ens-ipfs
as an argument to the infra
command's modules
option:
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.