正在运行微服务go(未找到)

时间:2019-05-17 05:27:27

标签: docker go microservices

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

1 个答案:

答案 0 :(得分:1)

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

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

ENTRYPOINT ./bin/app