代码之家  ›  专栏  ›  技术社区  ›  Austin

是否可以在dockerfile中使用pushd/popd?

  •  7
  • Austin  · 技术社区  · 7 年前

    Dockerfile中是否有使用pushd/popd命令的方法?如果可能的话,这会使一些安装脚本变得容易得多。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Thomasleveil    6 年前

    它可以做,但你的图像必须有BASH和所有命令必须是相同的。 RUN 指令:

    停靠文件

    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
    
    推荐文章