pumaが動くDockerコンテナでlog driverにawslogsを指定してCloudwatch Logsにログを送るようにしたが、production.log
も転送したいと思った。
DockerのENTRYPOINT、CMDで実行されたスクリプトはpid=1で起動するようなのでproduction.logを/proc/1/fd/1
へのシンボリックリンクにした。
- Dockerfile
CMD /start.sh
- /start.sh
ln -fs /proc/1/fd/1 /app/log/production.log
bundle exec puma -C config/puma.rb
- Dockerのlogdriver設定
docker-compose.ymlの抜粋
log_driver: awslogs
log_opt:
awslogs-group: hogehoge
awslogs-region: リージョン