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年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。