Запущенный микросервис go (не найден) - PullRequest
0 голосов
/ 17 мая 2019

Ошибка, которую я получаю для моего проекта 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 Ответ

1 голос
/ 17 мая 2019

Создан исполняемый файл в / go / bin / app и текущий рабочий каталог /go.

Итак, измените последнюю строку вашего Dockerfile на эту

ENTRYPOINT ./bin/app
...