Hey I’m trying to develop go modules following the documentation.
OS: Ubuntu 19.04
Go:
go version go1.13.6 linux/amd64
I ran this to get the nakama module:
go get -u "github.com/heroiclabs/nakama-common"
I use Docker compose with this config:
version: '3'
services:
cockroachdb:
container_name: cockroachdb
image: cockroachdb/cockroach:v19.1.5
command: start --insecure --store=attrs=ssd,path=/var/lib/cockroach/
restart: always
volumes:
- data:/var/lib/cockroach
expose:
- "8080"
- "26257"
ports:
- "26257:26257"
- "8080:8080"
nakama:
container_name: nakama
image: heroiclabs/nakama:2.7.0
entrypoint:
- "/bin/sh"
- "-ecx"
- >
/nakama/nakama migrate up --database.address root@cockroachdb:26257 &&
exec /nakama/nakama --name nakama1 --database.address root@cockroachdb:26257 --logger.level debug #--runtime.path "./modules"
restart: unless-stopped
links:
- "cockroachdb:db"
depends_on:
- cockroachdb
volumes:
- ./:/nakama/data
expose:
- "7349"
- "7350"
- "7351"
ports:
- "7349:7349"
- "7350:7350"
- "7351:7351"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7350/"]
interval: 10s
timeout: 5s
retries: 5
volumes:
data:
I encounter this error when running
sudo docker-compose -f docker-compose.yml up
Could not open Go module",“path”:“/nakama/data/modules/test.so”,“error”:“plugin.Open("/nakama/data/modules/test.so"): Error relocating /nakama/data/modules/test.so: __fprintf_chk: symbol not found”,“stacktrace”:“github.com/heroiclabs/nakama/v2/server.openGoModule\n\tgithub.com/heroiclabs/nakama/v2@/server/runtime_go.go:1899\ngithub.com/heroiclabs/nakama/v2/server.NewRuntimeProviderGo\n\tgithub.com/heroiclabs/nakama/v2@/server/runtime_go.go:1823\ngithub.com/heroiclabs/nakama/v2/server.NewRuntime\n\tgithub.com/heroiclabs/nakama/v2@/server/runtime.go:442\nmain.main\n\tmain.go:130\nruntime.main\n\truntime/proc.go:203”}
nakama | {“level”:“error”,“ts”:“2020-01-18T08:20:50.350Z”,“msg”:“Error initialising Go runtime provider”,“error”:“plugin.Open("/nakama/data/modules/test.so"): Error relocating /nakama/data/modules/test.so: __fprintf_chk: symbol not found”,“stacktrace”:“github.com/heroiclabs/nakama/v2/server.NewRuntime\n\tgithub.com/heroiclabs/nakama/v2@/server/runtime.go:444\nmain.main\n\tmain.go:130\nruntime.main\n\truntime/proc.go:203”}
nakama | {“level”:“fatal”,“ts”:“2020-01-18T08:20:50.350Z”,“msg”:“Failed initializing runtime modules”,“error”:“plugin.Open("/nakama/data/modules/test.so"): Error relocating /nakama/data/modules/test.so: __fprintf_chk: symbol not found”,“stacktrace”:“main.main\n\tmain.go:132\nruntime.main\n\truntime/proc.go:203”}
In the same folder I have modules/test.go:
package main
import (
"context"
"database/sql"
"github.com/heroiclabs/nakama-common/runtime"
)
func InitModule(ctx context.Context, logger runtime.Logger, db *sql.DB, nk runtime.NakamaModule, initializer runtime.Initializer) error {
logger.Info("module loaded")
return nil
}
That I build with
go build -buildmode=plugin -trimpath -o ./test.so
Ah and I also ran (before)
go mod init "modules"
Did I do something wrong ?
Thanks a lot !