Я столкнулся с проблемой при попытке развернуть приложение Django в ECS через ecs-cli compose
.Когда я запускаю docker-compose up
локально, это работает хорошо, но когда я использую ecs-cli compose up
, он не может найти файл моей точки входа.Я сделал SSH в экземпляре EC2 и с помощью docker run -it {image_id} sh
проверил, что файл существует по ожидаемому пути и является исполняемым.Вот мой Dockerfile:
# pull official base image
FROM python:3.7-slim-stretch
MAINTAINER mail@test.com
# set working directory
WORKDIR /usr/src/app
RUN apt-get update && \
apt-get install -y \
libpq-dev
# install dependencies
COPY requirements/base.txt requirements.txt
RUN pip install --upgrade pip \
&& pip install -r requirements.txt
# copy project
# entrypoint.sh is in the current directory and gets copied over here
COPY . /usr/src/app/
# run entrypoint.sh
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]
Когда я запускаю команду ecs-cli compose up
, она пытается запустить контейнеры, но в конечном итоге они останавливаются на «STOPPED».Когда я запускаю ecs-cli ps
, он отображает ошибку: STOPPED Reason: CannotStartContainerError: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/usr/src/app/entrypoint.sh\": stat /usr/src/app/entrypoint.sh: no such file or directory": unknown
Другие люди на SO сталкивались с подобными проблемами при использовании одинарных кавычек вокруг пути ENTRYPOINT (я использую двойные кавычки) или когда точка входа.sh файл объявляется как bash вместо sh (мое объявляется как sh) или когда может присутствовать окончание строки Windows (я на MacOS).
Я новичок в Docker и ECS, так что спасибо вам взаранее за любую помощь или понимание!