gpt4 book ai didi

docker - 无法在 alpine docker 容器中启动应用程序

转载 作者:行者123 更新时间:2023-12-02 18:46:25 26 4
gpt4 key购买 nike

这……有点疯狂?

/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-compiled binary won't run in an alpine docker container on Ubuntu host

关于docker - 无法在 alpine docker 容器中启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50250513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com