services: postgres: command: postgres -c shared_preload_libraries=pg_stat_statements -c pg_stat_statements.track=all container_name: template_nk_postgres environment: - POSTGRES_DB=nakama - POSTGRES_PASSWORD=localdb expose: - "8080" - "5432" image: postgres:12.2-alpine ports: - "5432:5432" - "8080:8080" healthcheck: test: ["CMD", "pg_isready", "-U", "postgres", "-d", "nakama"] interval: 3s timeout: 3s retries: 5 volumes: - data:/var/lib/postgresql/data plugin-builder: image: heroiclabs/nakama-pluginbuilder:3.21.0 container_name: nk_plugin_builder working_dir: /workspace volumes: - ./:/workspace entrypoint: - sh - -c - | mkdir -p build go mod tidy go build --trimpath --buildmode=plugin -o build/main.so ./plugins nakama: image: heroiclabs/nakama:3.21.0 container_name: nk_backend depends_on: - postgres entrypoint: - "/bin/sh" - "-ecx" - > /nakama/nakama migrate up --database.address "$DB_ADDR" && exec /nakama/nakama --config /nakama/data/local.yml --database.address "$DB_ADDR" volumes: - ./local.yml:/nakama/data/local.yml - ./build:/nakama/data/modules expose: - "7349" - "7350" - "7351" healthcheck: test: ["CMD", "/nakama/nakama", "healthcheck"] interval: 10s timeout: 5s retries: 5 links: - "postgres:db" ports: - "7349:7349" - "7350:7350" - "7351:7351" restart: unless-stopped volumes: data: