2016-06-27 1 views
1

У меня есть Dockerfile, которые в основном следующие:докер-Compose не найден из сценария

FROM mhart/alpine-node:5 

COPY . /project 
WORKDIR /project 

ENTRYPOINT ["./startup.sh"] 

И мой startup.sh довольно просто тоже:

#!/bin/sh 
set -e 
docker-compose up -d 

У меня есть docker-compose.yml, но нет смысла описывать его здесь.

Первое, что я сделать, это построить docker image с помощью моего Dockerfile, так:

docker build -t test .

Затем запустите этот файл:

docker run -d test

, которая запустит startup.sh

К сожалению, у меня есть foll из-за ошибки появляются:

./startup.sh: линия 10: докер-Compose: не найден

И если я только ./startup.sh без Docker вещи, он работает как шарм.

В каких случаях может возникнуть проблема?

+2

Скрипт 'startup.sh' должен запускать процесс внутри контейнера, docker-compose - это всего лишь инструмент вашего хоста для управления контейнерами. –

+0

Получил это. Спасибо за объяснение. – Mornor

+0

Хотя не исключено, что вы хотите запустить comppos _inside_ контейнер (dind), 99% вероятно, что ответ Эрика Данненберга - вот что вы хотите здесь. – johnharris85

ответ

0

Попробуйте добавить полный путь к docker-compose внутри сценария

which docker-compose 

>/usr/bin/some/path/docker-compose 

Затем добавьте в ваш сценарий

#!/bin/sh 
set -e 
/usr/bin/some/path/docker-compose up -d 

Локальные настройки PATH неизвестны сценарию наречено грузчиком. Поэтому вы должны указать полный путь.

+0

К сожалению, такая же ошибка :( – Mornor

Смежные вопросы