Я хотел бы добавить пользовательский двоичный исполняемый файл в один из контейнеров. Я сделал это на своей машине и пытаюсь добавить это. Сначала я подумал о монтировании некоторого каталога как /tmp/foo
и просто скопировал его в /usr/bin/
. Не очень приятно, но нужно сделать свое дело. Для этого я определил следующее монтирование тома в docker-compose.yml
:
volumes:
- ./var/bin/:/tmp/bin/
и следующую команду в Dockerfile
:
RUN ls /tmp/bin
RUN cp /tmp/bin/wkhtmltoimage /usr/local/bin/ && cp /tmp/bin/wkhtmltopdf /usr/local/bin/
Как вы можете видеть, я уже добавил каталог, чтобы проверить, есть ли что-нибудь, и я получил
ls: cannot access /tmp/bin: No such file or directory
ERROR: Service 'web' failed to build: The command '/bin/sh -c ls /tmp/bin' returned a non-zero code: 2
Теперь есть два вопроса:1. Почему этот каталог не виден в командной строке контейнера? Другие крепления доступны ... 2. Как я могу достичь этой цели "правильно"? Чтобы двоичный файл копировался / устанавливался один раз при сборке образа и не требовал отображения при каждом запуске контейнера?