在 Docker 入口点引用动态参数

Referencing a dynamic argument in the Docker Entrypoint

我想运行一个docker这样的容器:

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

这会导致执行以下入口点:

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

所以我的问题是如何构建 ENTRYPOINT 以便它可以解析 $backup-label 以及如何将 backup-label 传递给...我需要在它周围加上单引号吗.. . 前面有一个破折号...?

当您的图像中有 ENTRYPOINT 脚本时,该脚本将接收在 docker run 命令行上图像之后传递的任何参数。也就是说,如果您有:

ENTRYPOINT /path/to/my/script.sh

还有你运行:

docker run myimage one two three

您的 ENTRYPOINT 脚本将被调用为:

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

从那时起,就像编写任何其他带参数的 shell 脚本一样:

#!/bin/sh

backup_label=
duplicity /target file:///backup/$backup_label