[Dev] JUSSIをデバッグしてみる その2

in #japanese18 hours ago

今回は、ビルドしたものをデバッグしてみた。

ビルド
go build -o bin/jussi ./cmd/jussi

リモートサーバ
dlv exec ./bin/jussi --headless --listen=:2345 --api-version=2 --accept-multiclient
image.png

image.png

デバッグ開始
「すでに起動している dlv(デバッガ)に接続するだけ」 なので、
"remotePath": "/home/steem/github/jussi"は不要。
image.png

image.png

curl -s --data '{"jsonrpc":"2.0","method":"database_api.get_dynamic_global_properties","id":1}' http://localhost:9000

ブレークポイントで止まった
image.png

image.png

docker-compose.yml.debug

services:
  jussi:
    build:
      context: .
      dockerfile: Dockerfile.jussi
    image: ojagggyo/jussi:debug
    container_name: jussi-debug
    command:
      - dlv 
      - exec 
      - ./jussi
      - --headless
      - --listen=:2345
      - --api-version=2
      - --accept-multiclient
      - --continue
    cap_add:
      - SYS_PTRACE
    security_opt:
      - seccomp:unconfined
    ports:
      - "9000:9000"
      - "2345:2345"
    environment:
      - JUSSI_SERVER_HOST=0.0.0.0
      - JUSSI_SERVER_PORT=9000
      - JUSSI_CACHE_REDIS_URL=redis://redis:6379
      - JUSSI_LOGGING_LEVEL=info
      - JUSSI_LOGGING_FORMAT=json
    volumes:
      - ./DEV_config.json:/app/DEV_config.json:ro
    depends_on:
      - redis
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:9000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    command: redis-server /usr/local/etc/redis/redis.conf
    volumes:
      - redis_data:/data
      - ./redis.conf:/usr/local/etc/redis/redis.conf:ro
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 30s
      timeout: 10s
      retries: 3
volumes:
  redis_data:

networks:
  default:
    name: jussi-network

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.092
BTC 62578.40
ETH 1778.40
USDT 1.00
SBD 0.39