В грузчиком я хочу сделать это:Docker: изменение команды каталога
git clone XYZ
cd XYZ
make XYZ
Однако, потому что нет команды кд, я должен пройти полный путь каждый раз (сделать XYZ/FULLPATH). Какие-нибудь хорошие решения для этого?
В грузчиком я хочу сделать это:Docker: изменение команды каталога
git clone XYZ
cd XYZ
make XYZ
Однако, потому что нет команды кд, я должен пройти полный путь каждый раз (сделать XYZ/FULLPATH). Какие-нибудь хорошие решения для этого?
Вы можете запустить сценарий или более сложный параметр для RUN. Вот пример из Dockerfile я скачал посмотреть на ранее:
RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
rm -f treeio.zip && cd treeio && pip install -r requirements.pip
Из-за использования «& &», это будет только в финале «пункт установить» команду, если все предыдущие команды преуспели.
Фактически, поскольку каждый RUN создает новый фиксатор & (в настоящее время) уровень AUFS, если у вас слишком много команд в файле Docker, вы будете использовать лимиты, чтобы слияние RUN (когда файл стабилен) может быть очень полезной вещью.
В случае, если вам интересно, эффект из 'cd' длится только для текущей команды' RUN'. Следующий 'RUN' начнется с текущего' WORKDIR'. – Ritchie
Чтобы перейти в другой каталог, используйте WORKDIR. Все команды RUN, CMD и ENTRYPOINT после WORKDIR будут выполняться из этого каталога.
RUN git clone XYZ
WORKDIR "/XYZ"
RUN make
Использование WORKDIR также упоминается как наилучшая практика [dockerfile best] (https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#workdir) –
Я считаю, что это более подходящий ответ на вопрос – purpletentacle
RUN git clone http://username:[email protected]/example.git
WORKDIR /folder
RUN make
родственные: http://stackoverflow.com/questions/17891669/docker-command-fails-during-build-but-succeeds-while-executed-within-running-co – trcarden
команды WORKDIR является как возможное обходное решение – trcarden
Не обходное решение, это рекомендуемое решение https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#workdir –