运行微服务GO(找不到)



我为GO模块项目遇到的错误

/bin/sh:微服务:找不到

dockerfile

FROM golang:1.7.4-alpine
MAINTAINER John Doe
ENV SOURCES /go/src/github.com/john/app/
COPY . ${SOURCES}
RUN cd ${SOURCES} && cgo_enabled=0 go install
ENV PORT 8080
EXPOSE 8080
ENTRYPOINT microservice

microservice.go

package main
import (
    "fmt"
    "net/http"
    "os"
)
func main() {
    http.HandleFunc("/", index)
    http.ListenAndServe(port(), nil)
}
func port() string {
    port := os.Getenv("PORT")
    fmt.Println(port)
    if len(port) == 0 {
        port = "8080"
    }
    return ":" + port
}
func index(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusOK)
    fmt.Fprintf(w, "Hello World.")
}

这是一个GO模块项目。我使用以下命令创建了一个图像。

docker build -t app:1.0.3 .

并通过

运行它
docker run -it -p 8080:8080 app:1.0.3

创建的可执行文件在/go/bin/app当前的工作目录是/go。

所以,将Dockerfile的最后一行更改为此

ENTRYPOINT ./bin/app

最新更新