gpt4 book ai didi

docker - docker容器找不到文件,但是文件存在

转载 作者:行者123 更新时间:2023-12-02 19:20:01 40 4
gpt4 key购买 nike

我试图将gotty打包到Docker容器中,但是发现了一个奇怪的行为。

$ tree                                                                                                                                                                                                                
.
├── Dockerfile
├── gotty
└── gotty_linux_amd64.tar.gz

Dockerfile:
FROM alpine:3.11.3

RUN mkdir -p /home/gotty
WORKDIR /home/gotty
COPY gotty /home/gotty
RUN chmod +x /home/gotty/gotty
CMD ["/bin/sh"]

该镜像的构建没有问题:
[strip...]
Removing intermediate container 0dee1ab645e0
---> b5c6957d36e1
Step 7/9 : COPY gotty /home/gotty
---> fb1a1adec04a
Step 8/9 : RUN chmod +x /home/gotty/gotty
---> Running in 90031140da40
Removing intermediate container 90031140da40
---> 609e1a5453f7
Step 9/9 : CMD ["/bin/sh"]
---> Running in 30ce65cd4339
Removing intermediate container 30ce65cd4339
---> 099bc22ee6c0
Successfully built 099bc22ee6c0
chmod成功更改了文件模式。因此 /home/gotty/gotty存在。
$ docker run -itd 099bc22ee6c0
9b219a6ef670b9576274a7b82a1b2cd813303c6ea5280e17a23a917ce809c5fa
$ docker exec -it 9b219a6ef670 /bin/sh
/home/gotty # ls
gotty
/home/gotty # ./gotty
/bin/sh: ./gotty: not found

进入容器,getty命令在那里。我用相对路径运行它。为什么是 not found

最佳答案

您正在遇到Alpine最臭名昭著的问题之一:Musl,而不是glibc。检查ldd gotty的输出。尝试添加libc6-compat:

apk add libc6-compat

看看是否能解决。

关于docker - docker容器找不到文件,但是文件存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60701199/

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