Я начинаю работать с AWS ECS и, в качестве доказательства концепции, пытаюсь запустить простой веб-сервер Apache. Проблема в том, что задача не выполняется, завершается с сообщением:
Essential container in task exited
Контейнер в моей задаче извлекает образ Docker Hub, который я создал сам из этого файла докеров:
FROM ubuntu:16.04
RUN apt update
RUN apt install -y apache2
RUN echo "Welcome to my web site" > /var/www/html/index.html
EXPOSE 80
Я знаю, что извлечение было успешным, что изображение может делать то, что должно делать, и моя сеть в порядке, потому что, когда я запускаю это из командной строки в базовом экземпляре EC2:
docker run -d -p 80:80 reponame/webserver /usr/sbin/apache2ctl -D FOREGROUND
... это дает мне рабочую веб-страницу. Я установил для контейнера жесткое ограничение в 512 МБ и сопоставление портов от 80 до 80. Он помечен как «необходимый», и я пробовал использовать все виды значений для точки входа, включая:
/usr/sbin/apache2ctl -D FOREGROUND
Любые идеи? Спасибо,
Я сдался и решил вместо этого добавить команду apachectl и ее аргументы в файл dockerfile:
CMD /usr/sbin/apache2ctl -D FOREGROUND
Затем я перестроил изображение и снова нажал на него. Таким образом, не было необходимости передавать что-либо в контейнер через определение задачи во время выполнения.