diff --git a/README.md b/README.md index 9dcc178..f7c8223 100644 --- a/README.md +++ b/README.md @@ -270,19 +270,23 @@ BTCPAY_SSHKEYFILE=/datadir/id_rsa 1. Add support for your crypto to [NBitcoin](https://github.com/MetacoSA/NBitcoin/tree/master/NBitcoin.Altcoins), [NBxplorer](https://github.com/dgarage/NBXplorer), and [BTCPayServer](https://github.com/btcpayserver/btcpayserver). (Use examples from other coins) 2. Create your own docker image ([Example for BTC](https://hub.docker.com/r/nicolasdorier/docker-bitcoin/)) 3. Create a docker-compose fragment ([Example for BTC](docker-compose-generator/docker-fragments/bitcoin.yml)) -4. Add your CryptoDefinition ([Example for BTC](docker-compose-generator/src/CryptoDefinition.cs)) +4. Add your `CryptoDefinition` ([Example for BTC](docker-compose-generator/src/CryptoDefinition.cs)) -When testing your coin, **DO NOT USE `build.sh`**, since it uses a pre-built docker image. - -Instead, install [.NET Core 2.1 SDK](https://www.microsoft.com/net/download/windows) and run: +`build.sh` is using a pre-built image of the `docker-compose generator` on [docker hub](https://hub.docker.com/r/btcpayserver/docker-compose-generator/). +If you modify the code source of `docker-compose generator` (for example, the `CryptoDefinition` [Example for BTC](docker-compose-generator/src/CryptoDefinition.cs)), you need to configure `build.sh` to use your own image by setting the environment variable `BTCPAYGEN_DOCKER_IMAGE` to `btcpayserver/docker-compose-generator:local`. ```bash -BTCPAYGEN_CRYPTO1="EXAMPLE-COIN" -BTCPAYGEN_SUBNAME="test" -cd docker-compose-generator/src -dotnet run +cd docker-compose-generator +BTCPAYGEN_DOCKER_IMAGE="btcpayserver/docker-compose-generator:local" +``` + +Or on powershell: +```powershell +cd docker-compose-generator +$BTCPAYGEN_DOCKER_IMAGE="btcpayserver/docker-compose-generator:local" ``` +Then run `./build.sh` or `. .\build.ps1`. This will generate your docker-compose in the `Generated` folder, which you can then run and test. Note that BTCPayServer developers will not spend excessive time testing your image, so make sure it works. diff --git a/build.ps1 b/build.ps1 index 840d9a4..ec7f8fb 100755 --- a/build.ps1 +++ b/build.ps1 @@ -1,6 +1,13 @@ # This script will run docker-compose-generator in a container to generate the yml files -docker pull btcpayserver/docker-compose-generator +If (-not ($BTCPAYGEN_DOCKER_IMAGE)) { $BTCPAYGEN_DOCKER_IMAGE = "btcpayserver/docker-compose-generator" } + +If ($BTCPAYGEN_DOCKER_IMAGE -eq "btcpayserver/docker-compose-generator:local"){ + docker build docker-compose-generator --tag $BTCPAYGEN_DOCKER_IMAGE +} Else { + docker pull $BTCPAYGEN_DOCKER_IMAGE +} + docker run -v "$(Get-Location)\Generated:/app/Generated" ` -v "$(Get-Location)\docker-compose-generator\docker-fragments:/app/docker-fragments" ` -e "BTCPAYGEN_CRYPTO1=$BTCPAYGEN_CRYPTO1" ` @@ -16,7 +23,7 @@ docker run -v "$(Get-Location)\Generated:/app/Generated" ` -e "BTCPAYGEN_ADDITIONAL_FRAGMENTS=$BTCPAYGEN_ADDITIONAL_FRAGMENTS" ` -e "BTCPAYGEN_LIGHTNING=$BTCPAYGEN_LIGHTNING" ` -e "BTCPAYGEN_SUBNAME=$BTCPAYGEN_SUBNAME" ` - --rm btcpayserver/docker-compose-generator + --rm $BTCPAYGEN_DOCKER_IMAGE If ($BTCPAYGEN_REVERSEPROXY -eq "nginx") { Copy-Item ".\Production\nginx.tmpl" -Destination ".\Generated" diff --git a/build.sh b/build.sh index 62b1a65..b3fab27 100755 --- a/build.sh +++ b/build.sh @@ -1,7 +1,14 @@ #!/bin/bash +: "${BTCPAYGEN_DOCKER_IMAGE:=btcpayserver/docker-compose-generator}" +if [ "$BTCPAYGEN_DOCKER_IMAGE" == "btcpayserver/docker-compose-generator:local" ] +then + docker build docker-compose-generator --tag $BTCPAYGEN_DOCKER_IMAGE +else + docker pull $BTCPAYGEN_DOCKER_IMAGE +fi + # This script will run docker-compose-generator in a container to generate the yml files -docker pull btcpayserver/docker-compose-generator docker run -v "$(pwd)/Generated:/app/Generated" \ -v "$(pwd)/docker-compose-generator/docker-fragments:/app/docker-fragments" \ -e "BTCPAYGEN_CRYPTO1=$BTCPAYGEN_CRYPTO1" \ @@ -17,7 +24,7 @@ docker run -v "$(pwd)/Generated:/app/Generated" \ -e "BTCPAYGEN_ADDITIONAL_FRAGMENTS=$BTCPAYGEN_ADDITIONAL_FRAGMENTS" \ -e "BTCPAYGEN_LIGHTNING=$BTCPAYGEN_LIGHTNING" \ -e "BTCPAYGEN_SUBNAME=$BTCPAYGEN_SUBNAME" \ - --rm btcpayserver/docker-compose-generator + --rm $BTCPAYGEN_DOCKER_IMAGE if [ "$BTCPAYGEN_REVERSEPROXY" == "nginx" ]; then cp Production/nginx.tmpl Generated/nginx.tmpl