Saya mendapatkan file yang dapat dieksekusi yang tidak ditemukan di $PATH: kesalahan tidak diketahui saat mencoba menjalankan gambar buruh pelabuhan dari proyek golang. Berikut ini adalah file buruh pelabuhan saya.

FROM golang:latest
LABEL maintainer = "Nisal Perera <xxx@sss.com>"
RUN mkdir -p /go/src/github.com/user/app/
COPY . /go/src/github.com/user/app/
WORKDIR /go/src/github.com/user/app/
RUN go get -u github.com/golang/dep/cmd/dep
#RUN dep init
RUN dep ensure
RUN go build
CMD ["go run main.go"]

Kesalahan yang saya dapatkan adalah sebagai berikut

docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: exec: "go run main.go": executable file not found in $PATH: un
known.

Tolong bantu saya dengan ini. Terima kasih

-1
Nisal Edu 5 Januari 2021, 10:18

3 jawaban

Jawaban Terbaik

Anda tidak perlu menggunakan go run ... karena sebelumnya Anda menjalankan go build, file yang dibangun akan dinamai menurut direktori dan terlihat seperti app, coba CMD ["./app"]

BTW penggunaan CMD yang tepat dalam kasus Anda adalah CMD ["go", "run", "main.go"], kesalahan yang Anda miliki terkait dengan perintah CMD yang menganggap go run main.go adalah satu file tetapi tidak.

9
Peter 5 Januari 2021, 10:48

Anda mencoba menggunakan klausa CMD di exec form jadi Anda harus membagi perintah dan argumennya. Format yang diterima adalah

CMD ["executable","param1","param2"]

Jadi milikmu akan menjadi

CMD ["go", "run", "main.go"]
3
prithajnath 5 Januari 2021, 09:05

Anda mendapatkan kesalahan ini karena file "main.go" tidak tersedia di direktori kerja tempat menjalankan perintah "go run main.go".

Silakan periksa apakah file main.go tersedia atau tidak jika ya maka silakan tentukan path lengkap untuk file main.go dan coba.

1
Dharman 5 Januari 2021, 08:01