DEV Community

Shaikh Al Amin
Shaikh Al Amin

Posted on

How to set up nats with docker and docker compose with token

Docker compose file:

version: "3.9"

services:
  nats:
    image: nats:latest
    container_name: nats_main
    restart: always
    ports:
      - "4222:4222"
      - "8222:8222"
    volumes:
      - ./nats.conf:/etc/nats/nats.conf
    command: ["-c", "/etc/nats/nats.conf"]

  nats-client:
    image: natsio/nats-box
    container_name: nats_client
    restart: always
    depends_on:
      - nats
    entrypoint: /bin/sh
    tty: true

Enter fullscreen mode Exit fullscreen mode

Config file:


listen: 0.0.0.0:4222
http: 8222

jetstream {
  store_dir: /data/jetstream
  max_mem_store: 1Gb
  max_file_store: 10Gb
}

authorization {
  token: dfji348934jdd0i24uhjd29834ijrr0345jo0r3j034n
}


Enter fullscreen mode Exit fullscreen mode

Run:

docker compose up --build -d
Enter fullscreen mode Exit fullscreen mode

Test:

docker compose exec nats-client nats sub -s nats://dfji348934jdd0i24uhjd29834ijrr0345jo0r3j034n@nats:4222 test
Enter fullscreen mode Exit fullscreen mode

Fron another terminal:

docker compose exec nats-client nats pub -s nats://dfji348934jdd0i24uhjd29834ijrr0345jo0r3j034n@nats:4222 test "Hello via Docker Compose!"
Enter fullscreen mode Exit fullscreen mode

Setup JetStream:

Verify JetStream is running:

docker compose exec nats-client nats server check jetstream -s nats://dfji348934jdd0i24uhjd29834ijrr0345jo0r3j034n@nats:4222

Enter fullscreen mode Exit fullscreen mode

Create the TIXIO Stream (Manual CLI) and follow default command

docker compose exec nats-client nats stream add TIXIO \
  --subjects "tixio.>" \
  --storage file \
  --retention limits \
  -s nats://dfji348934jdd0i24uhjd29834ijrr0345jo0r3j034n@nats:4222
Enter fullscreen mode Exit fullscreen mode

Top comments (0)