首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >golang应用程序的Docker暂存映像找不到二进制文件“没有这样的文件或目录”

golang应用程序的Docker暂存映像找不到二进制文件“没有这样的文件或目录”
EN

Stack Overflow用户
提问于 2020-05-08 14:18:45
回答 1查看 118关注 0票数 0

我已经创建了一个dockerfile,它构建了一个临时映像,它从该映像中为静态golang构建提供服务。当我从镜像启动一个容器时,我收到这个错误:

代码语言:javascript
复制
idea_service_prod | standard_init_linux.go:211: exec user process caused "no such file or directory"
idea_service_prod exited with code 1

dockerfile:

代码语言:javascript
复制
FROM golang:1.14 as base

# install librdkafka
ENV LIBRDKAFKA_VERSION=1.4.2
RUN curl -Lk -o /root/librdkafka-${LIBRDKAFKA_VERSION}.tar.gz https://github.com/edenhill/librdkafka/archive/v${LIBRDKAFKA_VERSION}.tar.gz && \
    tar -xzf /root/librdkafka-${LIBRDKAFKA_VERSION}.tar.gz -C /root && \
    cd /root/librdkafka-${LIBRDKAFKA_VERSION} && \
    ./configure --prefix /usr && make && make install && make clean && ./configure --clean

# install inotify-tools
FROM base as dev
EXPOSE 80
RUN apt-get -y update \
    && apt-get install -y --no-install-recommends inotify-tools \
    && apt-get clean

FROM base as build

# install git
RUN apt-get -y update \
    && apt-get install -y --no-install-recommends git \
    && apt-get clean

# configure user
ENV USER=appuser
ENV UID=10001
RUN adduser \
    --disabled-password \
    --gecos "" \
    --home "/nonexistent" \
    --shell "/sbin/nologin" \
    --no-create-home \
    --uid "${UID}" \
    "${USER}"

# download dependencies
WORKDIR $GOPATH/src/ideaservice
COPY . .
RUN go get -d -v
RUN go mod download
RUN go mod verify

# build binary
RUN GOOS=linux GOARCH=amd64 go build -tags static -ldflags="-w -s" -o /go/bin/main cmd/ideaservice/main.go

FROM scratch
EXPOSE 80
COPY --from=build /etc/passwd /etc/passwd
COPY --from=build /etc/group/ /etc/group
COPY --from=build /go/bin/main /go/bin/main
USER appuser:appuser
CMD ["/go/bin/main"]

这可能是什么原因造成的?看起来它应该可以工作--二进制文件从构建过程的前一个阶段复制到临时映像中的一个目的地,然后从那里执行它。

EN

回答 1

Stack Overflow用户

发布于 2020-05-08 14:38:15

动态链接问题。我建议你读一下杰罗姆的“article”。它解释了为什么要追加它以及如何避免它,go开发的基础映像,linux和它们提供的库支持有什么不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61673165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档