Получение ENOENT запуска двоичного файла, скопированного в мой Docker контейнер - PullRequest
0 голосов
/ 14 января 2020

У меня есть 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

Когда я go запускаю свой контейнер, я получаю ошибку 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, чтобы быть уверенным, но достаточно уверенным, когда я go для запуска program_running_in_a_separate_process, я получаю sh: ./program_running_in_a_separate_process: not found

Как это могло быть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...