के साथ godep विक्रेता विक्रेता मैं विक्रेता के साथ एक डॉकर कंटेनर चलाने की कोशिश कर रहा हूं। यह मेरा Dockerfileडॉकर
FROM golang:alpine
EXPOSE 8080
RUN mkdir /app
ADD . /app/
WORKDIR /app
RUN go build -o myapp .
CMD ["/app/myapp"]
और मेरे main.go है
package main
import (
"fmt"
"log"
"net/http"
"github.com/gorilla/mux"
)
func main() {
r := mux.NewRouter()
r.HandleFunc("/", Hello)
http.Handle("/", r)
fmt.Println("Starting up on 8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
func Hello(w http.ResponseWriter, req *http.Request) {
fmt.Fprintln(w, "Hello world!")
}
मैं libs vendoring के लिए godep उपयोग कर रहा हूँ, यह मेरी स्थानीय मशीन में काम कर रहा है, लेकिन जब मैं के साथ इसे चलाने के लिए कोशिश कर रहा हूँ डोकर साथ:
docker build -t myapp-img .
docker run -p 8080:8080 --name myapp-cnt myapp-img
मैं निम्नलिखित त्रुटि है:
main.go:8:2: cannot find package "github.com/gorilla/mux" in any of:
/usr/local/go/src/github.com/gorilla/mux (from $GOROOT)
/go/src/github.com/gorilla/mux (from $GOPATH)
मुझे समझ में नहीं आता कि क्या गुम है।
प्रतिक्रिया के लिए Thx, मैंने आपके डॉकरफ़ाइल का उपयोग करने की कोशिश की, लेकिन जब मैं डॉकर रन कमांड चलाता हूं, तो ऐसा लगता है कि GOPATH सेट नहीं है। 'डेमॉन से त्रुटि प्रतिक्रिया: ओसीआई रनटाइम त्रुटि: निष्पादन: "$ GOPATH/src/app/myapp": stat $ GOPATH/src/app/myapp: ऐसी कोई फ़ाइल या निर्देशिका नहीं। – sbouaked
डॉकरफ़ाइल ($ GOPATH isn' सीएमडी के लिए उपलब्ध नहीं)। एक पूर्ण कामकाजी उदाहरण भी जोड़ा (अब मैं लैपटॉप के साथ काम पर हूं)। – eduncan911