Używam pojedynczego kontenera Docker na Elastic Beanstalk przy użyciu jego Single Container Docker Configuration i próbuję wysłać aplikację stdout do CloudWatch przy użyciu awslogs logging driver.Elastic Beanstalk Single Container Docker - użyj sterownika rejestrującego awslogs
EB szuka pliku Dockerrun.aws.json do konfiguracji kontenera, ale z tego, co widzę, nie ma opcji użycia awsloga jako sterownika zapisywania kontenera (lub dodania innych flag do docker run
polecenie w tej sprawie).
Próbowałem włamanie do komendy docker run
pomocą odpowiedź warunkiem here, dodając plik .ebextensions/01-commands.config
o treści:
commands:
add_awslogs:
command: 'sudo sed -i "s/docker run -d/docker run --log-driver=awslogs --log-opt awslogs-region=eu-west-2 --log-opt awslogs-group=dockerContainerLogs -d/" /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh'
To działa, w tym sensie, że modyfikuje skrypt uruchomić, a logi pokazują w CloudWatch.
Ale aplikacja EB umiera. Kontener jest gotowy, ale nie odpowiada na żądania.
znaleźć następujący błąd w dziennikach kontenerowych:
"dzienniki" komenda jest obsługiwana tylko dla "json-file" i "journald" Logowanie sterowników (got: awslogs)
Znajduję odpowiedzi na podobne pytania dotyczące ECS (nie EB) sugerując, aby dołączyć ECS_AVAILABLE_LOGGING_DRIVERS z awsloga. Ale nie znajduję tego ustawienia konfiguracji w EB.
Jakieś myśli?