Задание ECS останавливается, контейнер выходит.Исполняемый файл не в $ PATH - PullRequest
0 голосов
/ 18 сентября 2018

Я пытался заставить свое приложение работать, но я продолжаю получать сообщение об ошибке:

Task Stop Reason: Essential container in task exited; Container myapp Status Reason: CannotStartContainerError: API error (400): OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"docker-compose up\": executable file not found in $PATH": unknown

Мой Dockerfile:

FROM node:9.10.0

COPY / /myapp
WORKDIR /myapp
RUN chown -R node:node /myapp

USER node
RUN mkdir /home/node/.npm-global
ENV PATH=/home/node/.npm-global/bin:$PATH
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global

RUN npm install -g @angular/cli
RUN npm install

USER root
ENV USER root
RUN apt-get update && \
    apt-get install -y \
        python \
        python-dev \
        python-pip \
        python-setuptools \
    && pip install --upgrade awscli \
    && apt-get clean

Теперь моя задачаопределение (deploy.yaml) довольно простое, и его часть:

....
task:
    taskRole: "<role>"
    containerDefinitions:
    - command:
        - "docker-compose up"
...

При развертывании приложения ECS обычно запускает docker run Полагаю, в то время как мне нужно docker-compose up для запуска моих служб (в docker-compose.yaml).Где я могу запустить эту команду или как исправить этот путь?

1 Ответ

0 голосов
/ 24 октября 2018

Если вы посмотрите ближе к сообщению об ошибке:

starting container process caused "exec: \"docker-compose up\": executable file not found in $PATH": unknown

Вы заметите, что Docker пытается найти исполняемый файл с именем "docker-compose up" в PATH.Это, вероятно, неправильно, он должен был искать исполняемый файл «docker-compose» (обратите внимание на отсутствующий «[пробел] вверх» в пути exe).Вероятно, это вызвано неправильными свойствами YML "-команды".

У вас должно быть что-то вроде:

...
 -command :
    -docker-compose
    -up

У меня возникла такая же проблема с командой ENTRYPOINT в Dockerfile:

ENTRYPOINT ["command with parameters"]

недействительно.Вы должны иметь

ENTRYPOINT ["command", "with", "parameters"]
...