Sign inSign up

liftbridge/standalone-dev

By liftbridge

Updated over 2 years ago

Standalone Docker image embedding NATS next to Liftbridge for development and testing.

Image
1

50K+

liftbridge/standalone-dev repository overview

Standalone Docker Image

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 source code of the Docker image embedding NATS next to Liftbridge. The image is available on Docker Hub here.

Usage

Using the container can be done like this:

$ docker pull liftbridge/standalone-dev
$ docker run -d --name=liftbridge-main -p 4222:4222 -p 9292:9292 -p 8222:8222 -p 6222:6222 liftbridge/standalone-dev

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"
Volume

Optionally you can specify the mount point with:

--volume=/tmp/host/liftbridge:/tmp/liftbridge/liftbridge-default

Ports

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.
Default NATS Configuration file
# 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 = []
}

Development

Building

Go to the root directory of the Liftbridge source code and run:

$ make build-dev
$ docker build -t liftbridge/standalone-dev -f docker/dev-image/Dockerfile .

Tag summary

Content type

Image

Digest

sha256:c900662bc

Size

18.1 MB

Last updated

over 2 years ago

docker pull liftbridge/standalone-dev