Pu sh журналы в stdout / stderr контейнера и получение журналов контейнера в Cloudwatch (полезно в случае fargate ), а также на основе 12 факторов. будет выводить sh журналы в стандартный вывод. CMD ["pm2-runtime", "app.js"]
#OR
CMD ["pm2-runtime", "process.yml"]
pm2-runtime
предназначен для контейнера docker и поставляется в виде пакета с pm2
.
Что такое разница между pm2 и pm2-runtime?
Сделав это, вы сможете получить доступ к журналам вне контейнера также в облачных часах, если они настроены в определении задачи.
вам необходимо добавьте это в определение задачи
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "awslogs-pm2",
"awslogs-region": "us-west-2",
"awslogs-stream-prefix": "awslogs-nodejs"
}
}
visit https://console.aws.amazon.com/cloudwatch/ и найдите awslogs-pm2
using_awslogs
Это стандартный подход к работе с журналами в контейнере. ![enter image description here](https://i.stack.imgur.com/5CRyP.png)
Mount logs folder
This the other option is not recommended in production system,
- set log path in pm2 config file, suppose it set to
/app/logs/myapp.log
- Map host path /home/ec2-user/container-logs with /app/logs/myapp.log
then you will able to find container on host under /app/logs/myapp.log
process.yml
apps:
- script : myapp.js
name : 'api-server'
error_file : './logs/myapperror.log'
out_file : './logs/myappoutput.log'
Mount config
"containerDefinitions": [
{
"name": "database1",
"image": "my-repo/database",
"cpu": 100,
"memory": 100,
"essential": true,
"mountPoints": [
{
"sourceVolume": "database_scratch",
"containerPath": "/var/scratch"
}
]
},
{
"name": "database2",
"image": "my-repo/database",
"cpu": 100,
"memory": 100,
"essential": true,
"mountPoints": [
{
"sourceVolume": "database_scratch",
"containerPath": "/var/scratch"
}
]
}
]
Крепления ECS