Docker 使用 alpine 构建镜像时出现添加的可执行文件无法使用的问题

Docker 使用 alpine 构建镜像时出现添加的可执行文件无法使用的问题

问题起因

笔者今天第一次使用 alpine 作为 docker 的基础镜像,只知道 alpine 是一个极其精简的 Linux 版本,没有更多地去了解。笔者像平时一样用 g++ 编译程序,在本地运行时正常,但在 Dockerfile 中使用 COPY 命令添加后,却出现了无法运行的问题,具体体现为:

$ docker run mazeprog:latest 
/bin/sh: /opt/maze: not found

对应的 Dockerfile 为:

From alpine:latest
COPY ./maze /opt/
COPY ./m2 /opt
RUN chmod 0777 /opt/maze
CMD /opt/maze /opt/m2

其中,maze 是一个 x86_64 的可执行 ELF 文件,m2 是一个主程序使用的文本文件。

解决思路

出现了 not found 的问题后,立刻想到两个可能的原因,可以试着先排查一下。
首先是,是否正确地放置到了预期的位置?这个通过基于构建的镜像运行一下 ls 命令就可以知道:

$ docker run mazeprog 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值