Update readme for automated Docker builds.

This commit is contained in:
projectmoon 2020-09-01 08:11:19 +00:00
parent f3f5846826
commit 33c41bce7e
1 changed files with 30 additions and 14 deletions

View File

@ -18,9 +18,29 @@ System.
## Building and Installation ## Building and Installation
The easiest way to install matrix-dicebot is to clone this repository ### Running with Docker
and run `cargo install`. Precompiled executables are not yet
available. The dice bot can run in a minimal Docker image based on [Void
Linux](https://voidlinux.org/). You can either pull it from [Docker
Hub](https://hub.docker.com/r/projectmoon/chronicle-dicebot) or build
it yourself. The easiest way is to use the prebuilt image. It is
updated on Docker Hub via a CI/CD pipeline. The `latest` tag always
points to the most recent successful master commit and is considered
unstable, while individual tags are considered stable:
* Unstable: `docker pull projectmoon/chronicle-dicebot:latest`
* Stable: `docker pull projectmoon/chronicle-dicebot:vX.Y.Z`
To create the Docker image, run `docker build -t chronicle-dicebot .`
in the root of the repository.
After pulling or building the image, see [instructions on how to use
the Docker image](#docker-image).
### Build from Source
Precompiled executables are not yet available. Clone this repository
and run `cargo install`.
Building the project requires: Building the project requires:
@ -28,7 +48,7 @@ Building the project requires:
* OpenSSL/LibreSSL development headers installed. * OpenSSL/LibreSSL development headers installed.
* glibc (probably) * glibc (probably)
### Why doesn't it build on musl libc? #### Why doesn't it build on musl libc?
As far as I can tell, the project doesn't build on musl libc. It As far as I can tell, the project doesn't build on musl libc. It
certainly doesn't build a static binary out of the box using the certainly doesn't build a static binary out of the box using the
@ -83,7 +103,7 @@ application, and creating a config file that looks like this:
```ini ```ini
[matrix] [matrix]
home_server = https://'matrix.org' home_server = https://example.com'
username = 'thisismyusername' username = 'thisismyusername'
password = 'thisismypassword' password = 'thisismypassword'
``` ```
@ -96,19 +116,17 @@ You can also run it on the command line with the `dicebot-cmd`
command, which expects you to feed it one of the command expressions command, which expects you to feed it one of the command expressions
as shown above, and will give you the plaintext response. as shown above, and will give you the plaintext response.
## Docker Image ### Docker Image
The dice bot can run in a minimal Docker image based on [Void A typical docker run command using the Docker Hub image should look
Linux](https://voidlinux.org/). To create the Docker image, run something like this:
`docker build -t chronicle-dicebot .` in the root of the repository.
A typical docker run command should look something like this:
``` ```
VERSION="0.3.0" VERSION="latest"
docker run --rm -d --name dicebot \ docker run --rm -d --name dicebot \
-v /path/to/dicebot-config.toml:/config/dicebot-config.toml:ro \ -v /path/to/dicebot-config.toml:/config/dicebot-config.toml:ro \
-v /path/to/cache/:/cache \ -v /path/to/cache/:/cache \
chronicle-dicebot:$VERSION projectmoon/chronicle-dicebot:$VERSION
``` ```
The Docker image requires two volume mounts: the location of the The Docker image requires two volume mounts: the location of the
@ -116,8 +134,6 @@ config file, which should be mounted at `/config/dicebot-config.toml`,
and a cache directory to store client state after initial sync. That and a cache directory to store client state after initial sync. That
should be mounted at `/cache/`in the container. should be mounted at `/cache/`in the container.
Properly automated docker builds are forthcoming.
## Future plans ## Future plans
The most basic plans are: The most basic plans are: