У меня есть 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
Как это могло быть?