Возможно ли использовать pushd / popd в Dockerfile? - PullRequest
0 голосов
/ 25 июня 2018

Есть ли способ использовать команды pushd / popd в Dockerfile?Это сделало бы некоторые установочные скрипты намного проще, если бы это было возможно.

1 Ответ

0 голосов
/ 30 марта 2019

Это можно сделать, но ваше изображение должно иметь 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
...