Ek begin met AWS ECS en, as 'n bewys van konsep, probeer ek om 'n eenvoudige Apache-webbediener te bestuur. Die probleem is dat die taak misluk en afgesluit word met die boodskap:

Essential container in task exited

Die houer in my taak trek 'n Docker Hub-beeld wat ek self uit hierdie docker-lêer gebou het:

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

Ek weet dat die trek suksesvol was, dat die beeld kan doen wat dit veronderstel is om te doen, en my netwerk is alles goed, want as ek dit vanaf die opdragreël op die onderliggende EC2-instansie laat loop:

docker run -d -p 80:80 reponame/webserver /usr/sbin/apache2ctl -D FOREGROUND

...dit gee my 'n werkende webblad. Ek het die houer 'n harde limiet van 512 MB gegee en poortafbeeldings van 80 tot 80. Dit is gemerk "noodsaaklik" en ek het probeer om allerhande waardes vir Ingangspunt te gebruik, insluitend:

/usr/sbin/apache2ctl -D FOREGROUND

Enige idees? Dankie,

answer

Ek het tou opgegooi en besluit om eerder die apachectl-opdrag en sy argumente by die dockerfile te voeg:

CMD /usr/sbin/apache2ctl -D FOREGROUND

Ek het toe die beeld herbou en dit weer gedruk. Op dié manier was dit nie nodig om iets in die houer deur die taakdefinisie tydens looptyd deur te gee nie.