Я пытаюсь Dockerize приложение, которое имеет файлы в двух каталогах:
BOTFILES/
...
ChatScript/
BINARIES/
LinuxChatScript64
DICT/
...
В моем Dockerfile я копирую каждый каталог отдельно.
FROM alpine:3.9
# https://github.com/ChatScript/ChatScript
RUN mkdir /bot
COPY ChatScript/ /bot/ChatScript
RUN chmod +x /bot/ChatScript/BINARIES/LinuxChatScript64
COPY BOTFILES/ /bot/BOTFILES
WORKDIR /bot/ChatScript
EXPOSE 1024
CMD ["./BINARIES/LinuxChatScript64"]
chmod +x
работает правильно, но когда я пытаюсь запустить контейнер, я получаю следующую ошибку:
standard_init_linux.go:207: exec user process caused "no such file or directory"
Если я изменю строку CMD на /bin/ash
, я могу получить работающий терминал и увидеть, что файл BINARIES/LinuxChatScript64
находится там и имеет разрешение на выполнение. Однако, если я попытаюсь запустить его, даже с интерактивного терминала, я получу /bin/ash: ./BINARIES/LinuxChatScript64: not found
. Таким образом, я могу видеть файл, я могу cat
файл, но запуск файлов просто возвращает мне ошибку «файл не найден». Чего мне не хватает?