[英]Cannot start application in alpine docker container
這是...有點瘋狂嗎?
/bin # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/bin # ./app
sh: ./app: not found
/bin # ls -lha | grep app
-rwxr-xr-x 1 root root 48.3M May 9 09:48 app
/bin # pwd
/bin
/bin # app
sh: app: not found
docker鏡像是使用多階段構建創建的:
FROM golang AS builder
WORKDIR /go/src/github.com/nmiculinic/app/
RUN go get -u github.com/golang/dep/cmd/dep
COPY Gopkg.lock Gopkg.toml ./
RUN dep ensure -vendor-only
COPY . .
RUN GOOS=linux go install ./cmd/app
FROM alpine:latest
RUN apk --no-cache add ca-certificates && update-ca-certificates
COPY --from=builder /go/bin/ /bin
COPY config /etc/app/
ENTRYPOINT ["/bin/app"]
該應用程序顯然位於PATH中,路徑中的所有其他內容均起作用,但我的卻不起作用。 我只是看不到這怎么可能。
我遇到了這個問題,事實證明它與依賴關系有關。 我的應用程序是用C編寫的,它具有幾個動態依賴項。
您可以使用:
ldd /bin/app
檢查您的程序是否具有動態依賴關系。 如果有,則安裝所需的依賴項,問題將得到解決。
或者,您可以使用gcc標志將程序編譯為靜態程序。
記得告訴你如何解決這個問題:)
您也可以參考此鏈接,在該鏈接中,程序動態地與網絡相關的依存關系對齊。 Go編譯的二進制文件不會在Ubuntu主機上的高山Docker容器中運行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.