1

I want to run a docker container like this:

docker run --rm -it -v volume1:/target -v volume2:/backup duplicity-image backup-label

This would cause the following Entrypoint do get executed:

duplicity /target file:///backup/$backup-label

So my question is how do I structure the ENTRYPOINT such that it can resolve the $backup-label and how do I pass the backup-label in ... Do I need single quotes around it ... a dash in front of it ...?

tripleee
  • 175,061
  • 34
  • 275
  • 318
Ole
  • 41,793
  • 59
  • 191
  • 359

1 Answers1

3

When you have an ENTRYPOINT script in your image, that script will receive any arguments passed after the image on the docker run command line. That is, if you have:

ENTRYPOINT /path/to/my/script.sh

And you run:

docker run myimage one two three

Your ENTRYPOINT script will be called like:

/path/to/my/script.sh one two three

From that point on, it's just like writing any other shell script that takes arguments:

#!/bin/sh

backup_label=$1
duplicity /target file:///backup/$backup_label
larsks
  • 277,717
  • 41
  • 399
  • 399