user2245644
user2245644

Reputation: 387

How to send files as arguments of docker commands?

I'm not sure that I'm trying to do it the right way, but I would like to use docker.io as a way to package some programs that need to be run from the host.

However these applications take filenames as arguments and need to have at least read access. Some other applications generate files as output and the user expects to retrieve those files.

What is the docker way of dealing with files as program parameters?

Upvotes: 18

Views: 19265

Answers (2)

TheStoneFox
TheStoneFox

Reputation: 3067

If you have apps that require args when they're run then you can just inject your parameters as environment variables when you run your docker container

e.g.

docker run -e ENV_TO_INJECT=my_value .....

Then in your entrypoint (or cmd) make sure you just run a shell script

e.g. (in Dockerfile)

CMD["/my/path/to/run.sh"]

Then in your run.sh file that gets run at container launch you can just access the environment variables

e.g.

./runmything.sh $ENV_TO_INJECT

Would that work for you?

Upvotes: 4

Mark O'Connor
Mark O'Connor

Reputation: 77991

Start Docker with a mounted volume and use this to directory to manipulate files.

See: https://docs.docker.com/engine/tutorials/dockervolumes/

Upvotes: 12

Related Questions