有没有办法在 Dockerfile 中使用 pushd/popd 命令?如果可能的话,它会使一些安装脚本变得容易得多。
问问题
3248 次
1 回答
6
可以这样做,但您的图像必须有 bash 并且所有命令必须在同一个RUN
指令中:
Dockerfile
FROM debian
RUN mkdir -p /test/dir1/dir2
RUN bash -xc "\
pushd /test/dir1; \
pwd; \
pushd dir2; \
pwd; \
popd; \
pwd; \
"
RUN pwd
Sending build context to Docker daemon 77.25MB Step 1/4 : FROM debian ---> 2d337f242f07 Step 2/4 : RUN mkdir -p /test/dir1/dir2 ---> Using cache ---> d609d5e33b08 Step 3/4 : RUN bash -xc "pushd /test/dir1; pwd; pushd dir2; pwd; popd; pwd; " ---> Running in 79aa21ebdd15 + pushd /test/dir1 + pwd + pushd dir2 + pwd + popd + pwd /test/dir1 / /test/dir1 /test/dir1/dir2 /test/dir1 / /test/dir1/dir2 /test/dir1 / /test/dir1 Removing intermediate container 79aa21ebdd15 ---> fb1a07d6e342 Step 4/4 : RUN pwd ---> Running in 9dcb064b36bb / Removing intermediate container 9dcb064b36bb ---> eb43f6ed241a Successfully built eb43f6ed241a Successfully tagged test:latest
于 2019-03-30T17:42:43.213 回答