2016-10-04 3 views
1

Я в моем Docker контейнере: Это мой рабочий каталогВыполнить скрипт внутри Docker контейнера, который папка отличается WORKDIR

[email protected]:/usr/src/ghost# 

У меня есть сценарий:

[email protected]:/ 

I» m можно записать в / и выполнить скрипт. Но мне нужно выполнить скрипт из моего файла для создания докеры. Я попытался

./test.sh 

Но это на самом деле означает, что он в поиске /usr/src/ghost/ для сценария вместо / Как я могу выполнить сценарий, в / моего контейнера?

Пример: Я SSH в мой контейнер:

[email protected]:/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, а не в /

[email protected]:/usr/src/ghost# ./ 
content/  core/   node_modules/ 
+2

'/ test.sh' или' RUN/test.sh' в файле Dockerfile – Matt

ответ

0

Просто замените ваш ./test.sh на

/test.sh 

Поскольку ./ означает, что вы начинаете с текущего каталога (это рабочий каталог /usr/src/ghost/ в этом случае). Несмотря на это, / означает, что вы начинаете с корневого каталога, и это то, что вы хотите сделать.

В качестве альтернативы вы можете переключиться на корневой каталог и выполнить свой скрипт одной командой, используя нижеприведенный конкатенатор &&. Но я рекомендую вышесказанное.

cd/&& ./test.sh