You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
4.5 KiB

# Docker Images
> The Dockerfiles used to build the images that the Polar app needs to spin up nodes quickly across multiple operating systems.
_Warning: These images are not hardened and shouldn't be used to store real bitcoin. These images are intended solely to be used in simnet/regtest environments_
## Bitcoin Core
### Tags
- `0.19.1` ([bitcoind/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/bitcoind/Dockerfile))
- `0.19.0.1` ([bitcoind/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/bitcoind/Dockerfile))
- `0.18.1` ([bitcoind/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/bitcoind/Dockerfile))
**Building the image**
```sh
$ cd bitcoind
$ docker build --build-arg BITCOIN_VERSION=<version> -t polarlightning/bitcoind:<version> .
```
Replace `<version>` with the desired bitcoind version (ex: `0.18.1`)
**Push to Docker Hub**
```sh
$ docker push polarlightning/bitcoind:<version>
```
## LND
### Tags
- `0.10.2-beta.rc2` ([lnd/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/lnd/Dockerfile))
- `0.10.1-beta` ([lnd/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/lnd/Dockerfile))
- `0.10.0-beta` ([lnd/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/lnd/Dockerfile))
- `0.9.1-beta` ([lnd/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/lnd/Dockerfile))
- `0.9.0-beta` ([lnd/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/lnd/Dockerfile))
- `0.8.2-beta` ([lnd/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/lnd/Dockerfile))
- `0.8.0-beta` ([lnd/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/lnd/Dockerfile))
- `0.7.1-beta` ([lnd/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/lnd/Dockerfile))
**Building the image**
```sh
$ cd lnd
$ docker build --build-arg LND_VERSION=<version> -t polarlightning/lnd:<version> .
```
Replace `<version>` with the desired LND version (ex: `0.7.1-beta`)
**Push to Docker Hub**
```sh
$ docker push polarlightning/lnd:<version>
```
## c-lightning
### Tags
- `0.8.2` ([clightning/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/clightning/Dockerfile))
- `0.8.1` ([clightning/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/clightning/Dockerfile))
- `0.8.0` ([clightning/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/clightning/Dockerfile))
**Building the image**
```sh
$ cd clightning
$ docker build --build-arg CLN_VERSION=<version> -t polarlightning/clightning:<version> .
```
Replace `<version>` with the desired c-lightning version (ex: `0.8.0`).
**Push to Docker Hub**
```sh
$ docker push polarlightning/clightning:<version>
```
## Eclair
### Tags
- `0.3.3` ([eclair/Dockerfile](https://github.com/jamaljsr/polar/blob/master/docker/eclair/Dockerfile))
**Building the image**
```sh
$ cd eclair
$ docker build --build-arg ECLAIR_VERSION=<version> -t polarlightning/eclair:<version> .
```
Replace `<version>` with the desired Eclair version (ex: `0.3.3`).
**Push to Docker Hub**
```sh
$ docker push polarlightning/eclair:<version>
```
# Out-of-Band Image Updates
> Note: These steps can only be performed by developers with commit access to this GitHub repo and push access to the Docker Hub repo
These docker images can be updated in-between Polar releases. This allows developers to use the latest Bitcoin & Lightning versions shortly after they are released, without needing to download and install a new version of Polar.
To make new docker image versions available:
1. Build the new docker image using the commands above
1. Push the image to Docker Hub
1. Update the [`docker/nodes.json`](https://github.com/jamaljsr/polar/blob/master/docker/nodes.json) file
- add the new version to the `versions` array of the associated implementation
- update the `latest` property of the implementation if necessary
- increment the root-level `version` number by `1`
1. Update the [`src/utils/constants.ts`](https://github.com/jamaljsr/polar/blob/master/src/utils/constants.ts) file
Once the updated `nodes.json` file is committed to master, the new images can be used in Polar by following these steps:
1. Create a Network or view an existing Network
1. In the Network Designer sidebar, click on the **Show All Versions** toggle
1. At the bottom of the node list, click on the **Check for new Node Versions** link
1. A dialog will open displaying the new versions available
1. Click the **Add New Versions** button to begin using them