dockefile 报错,大佬们帮忙看下 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hoopan
V2EX    问与答

dockefile 报错,大佬们帮忙看下

  •  
  •   hoopan 2022-12-01 17:41:50 +08:00 2253 次点击
    这是一个创建于 1122 天前的主题,其中的信息可能已经有所发展或是发生改变。

    dockerfile 如下:

    FROM alpine WORKDIR /data COPY test ./test RUN chmod +x ./test ENTRYPOINT ["./test"] 

    构建镜像后,启动镜像报错 test 是二进制可执行文件

    exec ./test: no such file or directory 
    16 条回复    2022-12-02 10:05:00 +08:00
    prodan
        1
    prodan  
       2022-12-01 18:02:57 +08:00   1
    alpine 的 libc 跟其他 Linux 发行版不一样,你的二进制文件要在 alpine 环境下编译。

    建议使用 Dockerfile 多阶段构建。
    shenqi
        2
    shenqi  
       2022-12-01 18:08:55 +08:00
    COPY test /data/test

    RUN chmod +x /data/test

    ENTRYPOINT [". /data/test"]
    这样试下?
    shenqi
        3
    shenqi  
       2022-12-01 18:09:13 +08:00
    ENTRYPOINT [". /data/test"] 有空格,不要漏
    ysc3839
        4
    ysc3839  
       2022-12-01 18:12:37 +08:00
    应该是一楼所说的问题,内核报告 No such file or directory 其实是因为找不到对应的 ld.so
    shiny
        5
    shiny  
    PRO
       2022-12-01 18:14:03 +08:00
    我也遇到权限有,文件确定存在,报同样的错误。当时原因是编译给 ubuntu 的,但拷到了 alpine 里执行。
    14v45mJPBYJW8dT7
        6
    14v45mJPBYJW8dT7  
       2022-12-01 18:39:36 +08:00
    我的一个 go 程序示例,不知道能否帮到你

    FROM golang:alpine

    WORKDIR /app

    COPY . /app

    RUN go build -o main .

    CMD ["/app/main"]
    churchill
        7
    churchill  
       2022-12-01 19:01:56 +08:00
    如 1L 说的静态编译
    没法静态编译的话看看这个?
    https://wiki.alpinelinux.org/wiki/Running_glibc_programs
    swulling
        8
    swulling  
       2022-12-01 19:06:56 +08:00 via iPhone   2
    FROM ubuntu:22.04
    Co1a
        9
    Co1a  
       2022-12-01 19:07:14 +08:00
    加一行
    Co1a
        10
    Co1a  
       2022-12-01 19:07:18 +08:00   1
    RUN apk add --no-cache libc6-compat
    swulling
        11
    swulling  
       2022-12-01 19:07:44 +08:00 via iPhone   1
    坚决抵制 alpine 。

    不喜欢 ubuntu 可以用 debian slim
    cctv6
        12
    cctv6  
       2022-12-01 19:43:07 +08:00
    build 的时候加 CGO_ENABLED=1 ,
    CGO_ENABLED=1 go build .
    isyu
        13
    isyu  
       2022-12-01 21:55:16 +08:00 via iPhone
    你的 test 文件在 Windows 上编辑的?先用 dos2unix 转换一下换行符。
    francis59
        14
    francis59  
       2022-12-01 22:40:11 +08:00
    你的 shell 里面用的 Shebang(第一行)是 /bin/bash 吧,alpine 自带的只有 /bin/sh ,
    改一下 shell 或者改成下面这样就可以了
    ENTRYPOINT ["/bin/sh", "./test"]
    hoopan
        15
    hoopan  
    OP
       2022-12-02 10:02:44 +08:00
    感谢,可以了。用 ubuntu 或 debian 可以正常执行。
    hoopan
        16
    hoopan  
    OP
       2022-12-02 10:05:00 +08:00
    @prodan 应该是的,我直接用的别人编译好的版本,不兼容 alpine 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     832 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 21:55 PVG 05:55 LAX 13:55 JFK 16:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86