Automated docker build for nomadnet daemon

Uses a Github Action (`.github/workflows/publish-container.yml`) to create a
docker container image (from `Dockerfile`) that represents an extremely minimal
python installation with a virtualenv holding all requirements necessary to
execute `nomadnet`.

New docker images are created on pushes to `master` or pushes to tags
matching `*.*.*` (ie. version tags) and are retrievable with those tags.

Examples:

```sh
$ docker pull ghcr.io/markqvist/nomadnet:master

# Print docker labels, to demonstrate the image has been retrieved
$ docker inspect -f '{{json .Config.Labels}}' ghcr.io/markqvist/nomadnet:master | jq
{
  "org.opencontainers.image.created": "2022-04-27T06:01:55.894Z",
  "org.opencontainers.image.description": "Communicate Freely",
  "org.opencontainers.image.licenses": "GPL-3.0",
  "org.opencontainers.image.revision": "59cffc4a9de0f276d2cc87537ff1316aed5f16dd",
  "org.opencontainers.image.source": "https://github.com/markqvist/NomadNet",
  "org.opencontainers.image.title": "NomadNet",
  "org.opencontainers.image.url": "https://github.com/markqvist/NomadNet",
  "org.opencontainers.image.version": "master"
}

# Run nomadnet interactively without installing it (with default config)
$ docker run -it ghcr.io/markqvist/nomadnet:master

# Run nomadnet as a daemon, using config stored on the host machine in specific directories
$ docker run -d -v /local/path/nomadnetconfig/:/root/.nomadnetwork/ -v /local/path/reticulumconfig/:/root/.reticulum/:rw ghcr.io/markqvist/nomadnet:master
```

# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
#
# Date:      Tue Apr 26 23:50:22 2022 +0100
#
# On branch dockerfile
# Changes to be committed:
#	new file:   .dockerignore
#	new file:   .github/workflows/publish-container.yml
#	new file:   Dockerfile
#	modified:   README.md
#

# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
#
# Date:      Tue Apr 26 23:50:22 2022 +0100
#
# On branch dockerfile
# Changes to be committed:
#	new file:   .dockerignore
#	new file:   .github/workflows/publish-container.yml
#	new file:   Dockerfile
#	modified:   README.md
#

# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
#
# Date:      Tue Apr 26 23:50:22 2022 +0100
#
# On branch dockerfile
# Changes to be committed:
#	new file:   .dockerignore
#	new file:   .github/workflows/publish-container.yml
#	new file:   Dockerfile
#	modified:   README.md
#
This commit is contained in:
JP Hastings-Spital 2022-04-26 23:50:22 +01:00
parent 34b377bafe
commit a917cbf010
4 changed files with 89 additions and 0 deletions

View file

@ -53,6 +53,28 @@ You can install Nomad Network on Android using Termux, but there's a few more co
For a native Android application with a graphical user interface, have a look at [Sideband](https://unsigned.io/sideband).
### Using docker / running a daemon
Nomad Network is automatically published as a docker image on Github Packages. Image tags are one of either `master` (for the latest release) or the version number (eg `0.1.7`) for the specified version number (as tagged in this git repo).
```sh
$ docker pull ghcr.io/markqvist/nomadnet:master
# Run nomadnet interactively without installing it (with default config)
$ docker run -it ghcr.io/markqvist/nomadnet:master
# Run nomadnet as a daemon, using config stored on the host machine in specific
# directories, and allowing access to specific numbered ports openned by nomadnet
# on the host machine on the same port numbers.
$ docker run -d \
-v /local/path/nomadnetconfig/:/root/.nomadnetwork/ \
-v /local/path/reticulumconfig/:/root/.reticulum/ \
-p 37428:37428 \
-p 37429:37429 \
ghcr.io/markqvist/nomadnet:master
```
## Help & Discussion
For help requests, discussion, sharing ideas or anything else related to Nomad Network, please have a look at the [Nomad Network discussions pages](https://github.com/markqvist/Reticulum/discussions/categories/nomad-network).