2ord
@2ord
продвинутый чайник

Как передавать аргументы к внешнему файлу в Docker?

Есть исполняемая программа в Docker, которой нужно передать аргументы для анализа файла (только чтение). Аналогично программе file.

Начал с такого Dockerfile
FROM alpine:3.7
ADD ./trid /usr/local/bin

Как это сделать?
  • Вопрос задан
  • 208 просмотров
Решения вопроса 1
@zohan1993
devops
Если определить /usr/local/bin/trid как ENTRYPOINT, то CMD будет предоставлен в качестве параметров для ENTRYPOINT.
При запуске контейнера можно переопределять CMD, в нашем случае указывать путь к файлу для анализа внутри контейнера.
Поэтому нужно смонтировать внешнюю папку с файлами в контейнер.

# Dockerfile
---
FROM alpine:3.7
ADD ./trid /usr/local/bin
ENTRYPOINT ["/usr/local/bin/trid"]
---

docker build -t trid:v1 .


# Files for analysis on host system
/var/lib/docker_data/files/file1.txt
/var/lib/docker_data/files/file2.txt
/var/lib/docker_data/files/file3.txt


# Running container for analysis file1.txt
docker run --rm -v /var/lib/docker_data/files:/data:ro --name analysis trid:v1 "/data/file1.txt"
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@q2digger
никого не трогаю, починяю примус
Надо использовать ENTRYPOINT
https://riptutorial.com/ru/docker/example/2700/%D1...
Ответ написан
2ord
@2ord Автор вопроса
продвинутый чайник
Dockerfile
FROM alpine:3.7

ADD ./trid /usr/local/bin
ADD ./triddefs.trd /usr/local/bin

ENTRYPOINT ["/usr/local/bin/trid"]


Запускать так:
docker run -v $HOME/Documents/test.pdf:/data:ro -it trid /data
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы