簡體   English   中英

無法在高山Docker容器中啟動應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM