让ENOENT运行二进制文件复制到我的Docker容器中

时间:2020-01-14 17:13:48

标签: docker dockerfile

我有一个看起来像这样的Dockerfile

FROM node:8.15.0-alpine

# ARGs and LABELs...

RUN apk add --no-cache curl

COPY src/scripts scripts/
COPY src/scripts/update_mmdb.sh /etc/periodic/weekly/update_mmdb

RUN /etc/periodic/weekly/update_mmdb
RUN mkdir -p /root/myapp/bin
COPY src/docker/bin/program_running_in_a_separate_process /root/myapp/bin/
WORKDIR /root/myapp


# Some more COPY-ing

COPY src/myapp/docker/cmd.sh /

CMD /cmd.sh

当我运行容器时,当我的应用程序尝试加速ENOENT时,出现program_running_in_a_separate_process错误。

我通过做docker exec -it myapp sh并尝试直接运行二进制文件进行了调查。我可以成功stat

# stat program_running_in_a_separate_process
  File: program_running_in_a_separate_process
  Size: 14689327        Blocks: 28696      IO Block: 4096   regular file
Device: 39h/57d Inode: 15073498    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-01-14 01:08:09.000000000
Modify: 2020-01-14 01:08:09.000000000
Change: 2020-01-14 01:08:09.000000000

,当我从ls运行/root/myapp/时出现,我什至运行chmod +x来确定,但是当我去运行program_running_in_a_separate_process时,我肯定sh: ./program_running_in_a_separate_process: not found

怎么可能?

0 个答案:

没有答案