CakePHPでPostfixによるメールバッチをECS Scheduled Taskで動作させる場合、1コンテナにつき、1プロセスしか実行できないため、Supervisor(Postfix)とPHPバッチコマンドをシェルスクリプトで実行するしか方法がない。ちなみにSupevisorをバックグラウンドで動かすために & を追加しないとPHPのバッチまでたどり着かなく、sleepも必要となる。
1 2 3 4 5 6 | #!/bin/bash /usr/bin/supervisord & sleep 10 /var/www/hoge/bin/cake Hoge sleep 10 |
以下フォアグラウンドでPostfixを動かす方法。(docker image: amazonlinux:2)
- supervisor/app.conf
1 2 3 4 5 6 7 8 9 10 | [program:postfix] command=/usr/local/bin/postfix.sh autostart=true autorestart=true stopsignal=TERM user=root stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 |
- postfix.sh
1 2 3 4 | #!/bin/sh /usr/sbin/postfix start tail -F /var/log/mail.log |
Alpineは以下。
Was this helpful?
0 / 0
1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人開発では「夫婦、パートナー向け家事管理サービス/famii」をCakePHPで開発中。個人事業主では数社サーバー保守とベンチャー企業のインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。