我为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