dispatchrun / net

Go package implementing WASI socket extensions
Apache License 2.0
141 stars 8 forks source link

http server not work #23

Open LugiaChang opened 1 year ago

LugiaChang commented 1 year ago

go code:

package main

import (
    "net/http"

    "github.com/stealthrocket/net/wasip1"
)

func main() {
    listener, err := wasip1.Listen("tcp", "127.0.0.1:3000")
    if err != nil {
        panic(err)
    }

    server := &http.Server{
        Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
            w.Write([]byte("Hello, World!"))
            w.WriteHeader(http.StatusOK)
        }),
    }

    if err := server.Serve(listener); err != nil {
        panic(err)
    }
}

dockerfile:

FROM scratch

COPY bin/test.wasm ./test.wasm

CMD ["/test.wasm"]

build:

GOOS=wasip1 GOARCH=wasm go build -o bin/test.wasm  cmd/test/main.go
docker build -t meyoulvcha/wasm-test:v1.0 -f ./build/test/Dockerfile --platform=wasi/wasm .
docker push meyoulvcha/wasm-test:v1.0

docker run:

docker pull meyoulvcha/wasm-test:v1.0
docker run --rm --network host --name=wasm-test --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm meyoulvcha/wasm-test:v1.0

It is not listening 3000 port:

image

I dont know whats wrong. Can someone help me?

anthdm commented 10 months ago

expose 3000 should do the trick in your Docker setup