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

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

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

Как это сделать?
  • Вопрос задан
  • 1036 просмотров
Решения вопроса 2
@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"
Ответ написан
Комментировать
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
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@q2digger
никого не трогаю, починяю примус
Ваш ответ на вопрос

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

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