WARNING: This container is intended for testing and/or development purposes!
Liftbridge provides lightweight, fault-tolerant message streams by implementing a durable stream augmentation for the NATS messaging system.
This is the Git repo of the Docker image embedding NATS next to Liftbridge.
This repository has been archived since the Docker image has been integrated directly into the Liftbridge repository. The Docker image is now available as liftbridge/standalone-dev.
Using the container can be done like this:
$ docker pull liftbridge/liftbridge-docker
$ docker run -d --name=liftbridge-main -p 4222:4222 -p 9292:9292 -p 8222:8222 -p 6222:6222 liftbridge/liftbridge-docker
This will bootup the container and start both the NATS and Liftbridge servers. We can check the logs to see if the container booted properly:
$ docker logs liftbridge-main
[6] 2019/08/21 11:26:09.366043 [INF] Starting nats-server version 2.0.4
[6] 2019/08/21 11:26:09.366094 [INF] Git commit [not set]
[6] 2019/08/21 11:26:09.366274 [INF] Starting http monitor on 0.0.0.0:8222
[6] 2019/08/21 11:26:09.366333 [INF] Listening for client connections on 0.0.0.0:4222
[6] 2019/08/21 11:26:09.366354 [INF] Server id is NAI5VLHK3IWC5ENOS3HARMNGZTWNRLXQCYPHTKNXXCGW5EJWR4JXCNVZ
[6] 2019/08/21 11:26:09.366358 [INF] Server is ready
[6] 2019/08/21 11:26:09.366761 [INF] Listening for route connections on 0.0.0.0:6222
time="2019-08-21 11:26:14" level=info msg="Server ID: MSQaSobS9afF1aN4E8oTIJ"
time="2019-08-21 11:26:14" level=info msg="Namespace: liftbridge-default"
time="2019-08-21 11:26:14" level=info msg="Retention Policy: [Age: 1 week, Compact: false]"
time="2019-08-21 11:26:14" level=info msg="Starting server on :9292..."
time="2019-08-21 11:26:15" level=info msg="Server became metadata leader, performing leader promotion actions"
Optionally you can specify the mount point with:
--volume=/tmp/host/liftbridge:/tmp/liftbridge/liftbridge-default
Liftbridge server exposes:
- 9292 for clients.
NATS server exposes:
- 4222 for clients.
- 8222 as an HTTP management port for information reporting.
- 6222 is a routing port for clustering.
# Client port of 4222 on all interfaces
port: 4222
# HTTP monitoring port
monitor_port: 8222
# This is for clustering multiple servers together.
cluster {
# Route connections to be received on any interface on port 6222
port: 6222
# Routes are protected, so need to use them with --routes flag
# e.g. --routes=nats-route://ruser:T0pS3cr3t@otherdockerhost:6222
authorization {
user: ruser
password: T0pS3cr3t
timeout: 0.75
}
# Routes are actively solicited and connected to from this server.
# This Docker image has none by default, but you can pass a
# flag to the nats-server docker image to create one to an existing server.
routes = []
}