- latest
- latest-arm32v5
- latest-arm32v6
- latest-arm32v7
- latest-arm64v8
- develop
- develop-arm32v5
- develop-arm32v6
- develop-arm32v7
- develop-arm64v8
- release-v0.23.0
- release-v0.23.0-arm32v5
- release-v0.23.0-arm32v6
- release-v0.23.0-arm32v7
- release-v0.23.0-arm64v8
- release-v0.22.0
This Dockerfile build your working copy by default, but if you pass the
SKYCOIN_VERSION build argument to the docker build
command, it will checkout
to the branch, a tag or a commit you specify on that variable.
Example
$ git clone https://github.com/SkycoinProject/skycoin
$ cd skycoin
$ SKYCOIN_VERSION=v0.24.0
$ docker build -f docker/images/mainnet/Dockerfile \
--build-arg=SKYCOIN_VERSION=$SKYCOIN_VERSION \
-t skycoin:$SKYCOIN_VERSION .
or just
$ docker build -f docker/images/mainnet/Dockerfile \
--build-arg=SKYCOIN_VERSION=v0.24.0 \
-t skycoin:v0.24.0
Build arguments are provided to make it easy if you want to build for the ARM architecture.
Example for ARMv5.
$ git clone https://github.com/SkycoinProject/skycoin
$ cd skycoin
$ docker build -f docker/images/mainnet/Dockerfile \
--build-arg=ARCH=arm \
--build-arg=GOARM=5 \
--build-arg=IMAGE_FROM="arm32v5/alpine" \
-t skycoin:$SKYCOIN_VERSION-arm32v5 .
This command pulls latest stable image from Docker Hub, and launches a node inside a Docker container that runs as a service daemon in the background. It is possible to use the tags listed above to run another version of the node
$ docker volume create skycoin-data
$ docker volume create skycoin-wallet
$ docker run -d -v skycoin-data:/data/.skycoin \
-v skycoin-wallet:/wallet \
-p 6000:6000 -p 6420:6420 \
--name skycoin-node-stable SkycoinProject/skycoin
When invoking the container this way the options of the skycoin command are set to their respective default values , except the following
Parameter | Value |
---|---|
web-interface-addr | 0.0.0.0 |
gui-dir | /usr/local/skycoin/src/gui/static |
In order to stop the container , just run
$ docker stop skycoin-node-stable
Restart it once again by executing
$ docker start skycoin-node-stable
The container accepts parameters in order to customize the execution of the skycoin node. For instance, in order to run the bleeding edge development image and listen for REST API requests at a non-standard port (e.g. 6421
) it is possible to execute the following command.
$ docker run --rm -d -v skycoin-data:/data/.skycoin \
-v skycoin-wallet:/wallet \
-p 6000:6000 -p 6421:6421 \
--name skycoin-node-develop SkycoinProject/skycoin:develop -web-interface-port 6421
Notice that the value of node parameter (e.g. -web-interface-port
) affects the execution context inside the container. Therefore, in this particular case, the port mapping should be updated accordingly.
To get a full list of skycoin's parameters, just run
$ docker run --rm SkycoinProject/skycoin:develop -help
To run multiple nodes concurrently in the same host, it is highly recommended to create separate volumes for each node. For example, in order to run a block publisher node along with the one launched above, it is necessary to execute
$ docker volume create skycoin-block-publisher-data
$ docker volume create skycoin-block-publisher-wallet
$ docker run -d -v skycoin-block-publisher-data:/data/.skycoin \
-v skycoin-block-publisher-wallet:/wallet \
-p 6001:6000 -p 6421:6420 \
--name skycoin-block-publisher-stable SkycoinProject/skycoin -block-publisher
Notice that the host's port must be changed since collisions of two services listening at the same port are not allowed by the low-level operating system socket libraries.