内容へ移動
fl8 Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Dokuwiki.fl8.jp
»
50 日記
»
2024
»
08
»
2024.08.31 Docker ComposeのCron実行
トレース:
50_dialy:2024:08:31
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 2024.08.31 Docker ComposeのCron実行 ====== Docker ComposeをCronで実行しないといけない場合がある。 たとえば、手動実行のLet's Encryptなど - [[06_virtualization:05_container:10_docker_let_s_encrypt]] - [[06_virtualization:05_container:33_let_encrypt_proxy2]] ===== やり方 ===== ==== 1.シェルを用意 ==== シェルスクリプトで実行しないと上手く動作しないので、シェルスクリプトを用意 ※「-T」オプションが重要です。 <code|/usr/local/bin/renew_ssl_certificate.sh> #!/bin/bash echo $(date) cd /app docker-compose run --rm -T certbot renew docker-compose exec -T nginx nginx -s reload </code> === -Tオプションの意味 === - TTYが割り当てられない: docker-compose run コマンドで -T オプションを使用すると、疑似端末が割り当てられません。これにより、コマンドは非対話的なモードで実行されます。 - 出力の処理: TTYが割り当てられていない場合、コマンドの標準出力と標準エラー出力が直接ログファイルにリダイレクトされるため、出力がログに記録されやすくなります。Cronジョブは非対話的な環境で実行されるため、TTYが必要ない状況で -T オプションを使用することは理にかなっています。 ==== 2.crontab ==== crontabでは、ログファイルへリダイレクトを書いておくことによって実行ログが保存されます。 <code> SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 8 5 * * * renew_ssl_certificate.sh >> /var/log/certbot.log 2>&1 </code> {{tag>日記 docker}}
50_dialy/2024/08/31.txt
· 最終更新: 2024/08/30 21:43 by
matsui
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ