我在Go Module项目中遇到的错误
/ 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
答案 0 :(得分:1)
创建的可执行文件位于/ go / bin / app 当前的工作目录是/ go。
因此,将Dockerfile的最后一行更改为此
ENTRYPOINT ./bin/app