Ale*_*lls 9 docker docker-run gitleaks
我有这个docker run命令:
docker run --rm --name=gitleaks \
-v "/keys/ssh/values:/root/.ssh" \
zricethezav/gitleaks \
--ssh-key='bucket' \
--repo "$line"
Run Code Online (Sandbox Code Playgroud)
我将其翻译为:
docker create zricethezav/gitleaks --name=gitleaks
docker cp /keys/ssh/values gitleaks:/root/.ssh
docker start gitleaks --ssh-key='bucket' --repo "$line"
Run Code Online (Sandbox Code Playgroud)
但这给了我这个错误:
Run Code Online (Sandbox Code Playgroud)Error: No such container:path: gitleaks:/root unknown flag: --ssh-key
有人知道我哪里出问题了吗?最终,我打电话给docker从正在运行的容器中运行,并且在共享文件时遇到麻烦,因此尝试docker cp上班。
问题在于您的第一和第二命令语法。
docker create zricethezav/gitleaks --name=gitleaks
Run Code Online (Sandbox Code Playgroud)
--name应该在图像名称之前,否则docker create将其解释为COMMAND参数而不是OPTIONS标志。
docker start gitleaks --ssh-key='bucket' --repo "$line"
Run Code Online (Sandbox Code Playgroud)
我了解您想使用参数--ssh-key和--repo运行该映像,但是使用docker start命令是不可能的。如果要将这些参数传递给映像运行的进程,则应将这些参数粘贴到映像名称后docker create或docker run在映像名称后命令。
因此,您应该执行以下操作:
# Mind the --name before the image name
docker create --name=gitleaks zricethezav/gitleaks --ssh-key='bucket' --repo "$line"
docker cp /keys/ssh/values gitleaks:/root/.ssh
docker start gitleaks
Run Code Online (Sandbox Code Playgroud)
docker create的说明:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
Run Code Online (Sandbox Code Playgroud)
OPTIONS应该在哪里指定标志IMAGE,之后的所有内容都IMAGE将解释为COMMAND和ARG...。
跑步时
docker create zricethezav/gitleaks --name=gitleaks
Run Code Online (Sandbox Code Playgroud)
你实际上传递--name=gitleaks的COMMAND,这将覆盖默认图像命令(tipycally提供的一个CMD在Dockerfile),在那里你可能希望把它作为OPTIONS。例如,如果您运行:
docker create alpine --name=foobar
docker create --name=foobar alpine
Run Code Online (Sandbox Code Playgroud)
docker ps -a 输出将如下所示:
IMAGE COMMAND NAMES
alpine "/bin/sh" foobar
alpine "--name=foobar" quirky_varahamihira
Run Code Online (Sandbox Code Playgroud)
如果要同时传递OPTIONS和COMMAND,则必须OPTIONS在图像名称之前和图像名称COMMAND之后指定。
您需要使用 docker 容器 ID 而不是副本名称。
创建容器时返回ID,因此:
ID=$(docker create zricethezav/gitleaks --name=gitleaks)
docker cp /keys/ssh/values ${ID}:/root/.ssh
Run Code Online (Sandbox Code Playgroud)
如果您已经创建了容器,您可以:
ID=$(docker inspect gitleaks --format="{{.ID}}")
Run Code Online (Sandbox Code Playgroud)
但是,@mihai 是正确的,我不确定您如何才能开始配置容器。
我认为正确的方法是FROM:gitleaks构建您自己的映像(Dockerfile)来添加您的密钥。
该文档提供了使用 GitHub 令牌访问私有存储库的说明:
https://github.com/zricethezav/gitleaks#docker-usage-examples
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |