【发布时间】:2020-09-05 03:28:34
【问题描述】:
我想制作一个可以执行以下操作的 Docker 映像:
- 使用
read获取用户输入并将其存储在局部变量中 - 将该变量用于以后的命令
使用我有以下 Dockerfile:
FROM ubuntu
RUN ["echo", "'Input something: '"]
RUN ["read", "some_var"]
RUN ["echo", "You wrote $some_var!"]
在运行 docker build 时,会产生以下输出:
Sending build context to Docker daemon 3.072kB
Step 1/4 : FROM ubuntu
---> 4e2eef94cd6b
Step 2/4 : RUN ["echo", "'Input something: '"]
---> Using cache
---> a9d967721ade
Step 3/4 : RUN ["read", "some_var"]
---> Running in e1c603e2d376
OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"read\": executable file not found in $PATH": unknown
read 似乎是一个内置的 bash “函数”,因为 which read 没有产生任何结果。
我用["/bin/bash -c read", "some_var"] 和["/bin/bash", "-c", "read", "some_var"] 替换了["read", "some_var"],但都产生了以下结果:
...
Step 3/4 : RUN ["/bin/bash -c read", "some_var"]
---> Running in 6036267781a4
OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/bin/bash -c read\": stat /bin/bash -c read: no such file or directory": unknown
...
Step 3/4 : RUN ["/bin/bash", "-c", "read", "some_var"]
---> Running in 947dda3a9a6c
The command '/bin/bash -c read some_var' returned a non-zero code: 1
此外,我还用RUN read some_var 替换了它,但结果如下:
...
Step 3/4 : RUN read some_var
---> Running in de0444c67386
The command '/bin/sh -c read some_var' returned a non-zero code: 1
谁能帮我解决这个问题?
【问题讨论】: