コンテナ内で3000ポートを使用するジョブが1つのEC2インスタンス内に複数存在すると, Error: listen EADDRINUSE :::3000
エラーになる問題でハマりました。
サポートに問い合わせたところ、Batchではdocker run
のオプションとして--network="host"
を固定で設定しているおり、コンテナ内でLISTENするポートはホストでもLISTENされるため、EADDRINUSE
エラーになるとの回答でした。
現時点では--network="host"
を手動で設定することはできないため、EADDRINUSE
になったら別のポートでリトライするという実装にして問題を回避することにしました。