bash - 在Docker Entrypoint中引用动态参数

标签 bash docker dockerfile duplicity

我想像这样运行一个Docker容器:

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

这将导致执行以下Entrypoint:
duplicity /target file:///backup/$backup-label

所以我的问题是如何构造ENTRYPOINT以便它可以解析$backup-label,以及如何在其中传递backup-label ...我是否需要在单引号周围加上它的短划线...?

TIA,
奥莱

最佳答案

当图像中包含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=$1
duplicity /target file:///backup/$backup_label

关于bash - 在Docker Entrypoint中引用动态参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37324541/

相关文章:

mysql - 如何在官方 MySql docker 镜像中以 root 身份运行 mysqld?

spring - 容器化 Spring Boot 应用程序时 "-Djava.security.egd=file:/dev/./urandom"到底做了什么

deployment - 使用 args 部署 kubernetes

linux - BASH_REMATCH 不输出匹配项

linux - 通过 PowerShell/cmd 调用 Linux 应用程序的 Windows 子系统

Docker for windows 的 Docker 日志(驱动程序 json 文件)位置

python-3.x - Python + Docker + 未找到模块

c - 如何使用linux c计算bash中光标前的字母?

bash - 当键是已知字符串时,使用 jq 删除键/值对

Docker容器卡在exec命令上