У меня есть приложение FastAPI с указанным ниже Dockerfile.
FROM python:3.8
WORKDIR /usr/src/app
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "5000"]
Все работает правильно в Localhost, и я могу получить проект порта 8888. Теперь я хочу развернуть этот проект на AWS, поэтому я создал репозиторий в службе ECR и отправил свои изображения в этот репозиторий. Затем я создал кластер и добавил задачу.
Контейнер определенной задачи имеет ограничение жесткой памяти по умолчанию в 128 МБ, использует образ, хранящийся в ECR, и имеет правильные сопоставления портов.
Когда я хочу запустить эту задачу в определенном кластере, после добавления статус устанавливается на STOPPED, и я получаю следующую ошибку:
CannotStartContainerError: ответ об ошибке от демона: не удалось создать задачу прокладки: сбой создания среды выполнения OCI: сбой создания runc: невозможно запустить процесс контейнера: инициализация контейнера была уничтожена OOM (ограничение памяти слишком мало?): неизвестно
Как я могу решить эту проблему?
@ErmiyaEskandary Проблема решена, спасибо. Вы можете поделиться этим комментарием в качестве ответа
Рад это слышать — наслаждайтесь использованием AWS :)





Ваша задача (контейнер) останавливается, потому что она пытается использовать больше памяти, чем разрешено.
Документация AWS подчеркивает это поведение:
Если ваш контейнер пытается превысить указанную здесь память, контейнер уничтожается.
Основными подсказками здесь являются упоминание об OOM (недостаточно памяти) и слишком низком лимите памяти? вопрос в сообщении об ошибке.
Увеличьте лимит жесткой памяти со 128 МБ до примерно 300-500 МБ, что является рекомендуемым диапазоном памяти ECS для веб-приложений.
Как только он просто «заработает», настройте параметр памяти в соответствии с потребностями вашего контейнера.
Увеличьте лимит памяти со 128 до 300, а затем повторите попытку. Если это не поможет, попробуйте 500. Это работает?