Skip to content

Latest commit

 

History

History

docker

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 regtest environments

Creating multi-arch images for Polar makes use of the docker buildx command. It is a good idea to create a separate builder using the commands below.

// create the builder
$ docker buildx create --use --name polar-builder

// use the builder
$ docker buildx use polar-builder

// bootstrap the builder
$ docker buildx inspect --bootstrap

Bitcoin Core

Tags

Building the image

$ cd bitcoind
$ docker buildx build --platform linux/amd64,linux/arm64 --build-arg BITCOIN_VERSION=<version> -t polarlightning/bitcoind:<version> --push .

Replace <version> with the desired bitcoind version (ex: 0.18.1)

LND

Tags

Building the image

$ cd lnd
$ docker buildx build --platform linux/amd64,linux/arm64 --build-arg LND_VERSION=<version> -t polarlightning/lnd:<version> --push .

Replace <version> with the desired LND version (ex: 0.7.1-beta)

Core Lightning

Tags

Building the image

$ cd clightning

$ docker buildx build --platform linux/amd64,linux/arm64 --build-arg CLN_VERSION=<version> -t polarlightning/clightning:<version> --push .

Replace <version> with the desired c-lightning version (ex: 0.8.0).

Eclair

Tags

Building the image

$ cd eclair
$ docker buildx build --platform linux/amd64,linux/arm64 --build-arg ECLAIR_VERSION=<version> -t polarlightning/eclair:<version> --push .

Replace <version> with the desired Eclair version (ex: 0.3.3).

Taproot Assets Protocol

Tags

Building the image

$ cd tapd
$ docker buildx build --platform linux/amd64,linux/arm64 --build-arg TAPD_VERSION=<version> -t polarlightning/tapd:<version> --push .

Replace <version> with the desired Tap version (ex: 0.2.0-alpha).

Lightning Terminal

Tags

Building the image

$ cd litd
$ docker buildx build --platform linux/amd64,linux/arm64 --build-arg LITD_VERSION=<version> -t polarlightning/litd:<version> --push .

Replace <version> with the desired Tap version (ex: 0.13.3-alpha).

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
  2. Push the image to Docker Hub
  3. Update the 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
  4. Update the 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
  2. In the Network Designer sidebar, click on the Show All Versions toggle
  3. At the bottom of the node list, click on the Check for new Node Versions link
  4. A dialog will open displaying the new versions available
  5. Click the Add New Versions button to begin using them