#docker
#docker
Вопрос:
Я нахожусь внутри своего контейнера docker: это мой рабочий каталог
root@19b84a014662:/usr/src/ghost#
У меня есть скрипт в:
root@19b84a014662:/
Я могу записать /
и выполнить скрипт. Но мне нужно выполнить скрипт из моего файла docker-compose. Я попытался
./test.sh
Но на самом деле это означает /usr/src/ghost/
, что он ищет скрипт вместо /
Как я могу выполнить скрипт в /
моем контейнере?
Пример: я подключаюсь к своему контейнеру по ssh:
root@19b84a014662:/usr/src/ghost# ls
Gruntfile.js LICENSE PRIVACY.md README.md config.example.js config.js content core index.js node_modules npm-shrinkwrap.json package.json
У меня есть скрипт в корне моего контейнера. Я хочу выполнить его с:
./test.sh
Чем он показывает мне только папки / скрипты, которые находятся в /usr/src/ghost
, а не в /
root@19b84a014662:/usr/src/ghost# ./
content/ core/ node_modules/
Комментарии:
1.
/test.sh
илиRUN /test.sh
в Dockerfile
Ответ №1:
Просто замените свой ./test.sh
на
/test.sh
Потому ./
что означает, что вы начинаете с текущего каталога (который /usr/src/ghost/
в данном случае является рабочим каталогом). Несмотря на это /
, вы начинаете с корневого каталога, и это то, что вы хотите сделать.
В качестве альтернативы вы можете переключиться на корневой каталог и выполнить свой скрипт одной командой, используя amp;amp;
конкатенатор ниже. Но я порекомендую выше.
cd / amp;amp; ./test.sh