我想在Dockerfile中运行带有$ _等特殊参数的bash命令.我尝试了以下示例,但它似乎无法正常工作.如果我直接在bash中执行相同的命令,它就像魅力一样.有谁知道我做错了什么?
$ RUN mkdir /foo && cd $_ && pwd
Run Code Online (Sandbox Code Playgroud)
它取决于基础容器中的shell.例如,ubuntu使用破折号,将默认shell更改为bash有助于获得您期望的结果:
FROM ubuntu
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN mkdir /foo && cd $_ && pwd
Run Code Online (Sandbox Code Playgroud)
结果:
docker build --rm .
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu
---> d0955f21bf24
Step 1 : RUN rm /bin/sh && ln -s /bin/bash /bin/sh
---> Using cache
---> c90ef9fd9710
Step 2 : RUN mkdir /foo && cd $_ && pwd
---> Running in 8e1d943a6b60
/foo
---> 1871918ee02c
Removing intermediate container 8e1d943a6b60
Successfully built 1871918ee02c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |