要件: Celery は Django に導入されています。Django プロジェクトを開始するときに、Celery サービスも開始するにはどうすればよいですか? ENTRYPOINTコマンドの使用を開始する 1. Dockerfileを書く Centos:7より 実行 localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 ENV LC_ALL zh_CN.UTF-8 コピー ./hrms $CODE_DIR/hrms/ コピー ./run $CODE_DIR/run/ 実行 chmod a+x $CODE_DIR/run/* pip3 install -r $CODE_DIR/hrms/requirements.txt を実行します。 エクスポーズ8080 ワークディレクトリ /opt/hrms/hrms/ 上記を読む必要はありません。重要なのは次のコマンドを見ることです。 #CMD でサービスを開始します# CMD ["python3.5", "/opt/hrms/hrms/manage.py", "runserver", "0.0.0.0:8080"] #複数のサービスを開始する場合は、CMDを使用してスクリプトを実行し、スクリプト内で複数のサービスを開始できます。CMD source /opt/hrms/run/entrypoint.sh #複数のサービスを開始する場合は、ENTRYPOINTを使用してスクリプトを実行し、スクリプト内で複数のサービスを開始することもできます。ENTRYPOINT ["/opt/hrms/run/entrypoint.sh"] CMD と ENTRYPOINT の違いは、CMD コマンドは docker-compose.yml ファイル内の command コマンドで上書きできることです。コマンドが指定されると、CMD コマンドは実行されなくなりますが、ENTRYPOINT は上書きできません。 ここでは次の操作を実行できます。 CMD を使用してスクリプトを起動し、スクリプト内で Django、Celery などの複数のサービスを起動します。データベースの移行のみを実行する場合は、docker-compose.yml ファイル内のコマンドで python manage.py migrate を実行すると、CMD コマンドは実行されず、データベースの移行のみが実行されます。 2. entrypoint.sh スクリプト ファイル #!/bin/bash #Djangoを起動 python3.5 /opt/hrms/hrms/manage.py runserver 0.0.0.0:8080 & #ワーカーを起動する celery worker -A celery_tasks.main -l info -f /opt/hrms/logs/celery.log & #ログの場所は絶対パスで記述する必要があることに注意してください#開始ビート セロリビート -A celery_tasks.main -l 情報 注: 最初の 2 つのサービスはバックグラウンドで実行する必要があり、つまり、それらの後に & を追加し、最後のサービスはフォアグラウンドで実行する必要があります。 それ以外の場合、すべてがフォアグラウンドで実行されると、最初のサービスのみが起動します。すべてがバックグラウンドで実行されると、最後のサービスが実行されたときにコンテナは終了します。 追加知識: Dockerfile CMDの使用 CMD の 3 つの形式:
注記: 上記の exec フォームは JSON 配列に解析されるため、一重引用符ではなく二重引用符を使用する必要があります。 exec フォームはコマンド シェルを呼び出しません。 たとえば、CMD [ "echo", "HOME"] では、HOME 変数は置き換えられません。シェルを使用する場合は、次のようになります: CMD [ "sh", "-c", "echo $HOME" ] Dockerfile には CMD が 1 つだけ存在する必要があります。複数存在する場合は、最後のものだけが実行されます。 フォーマットの使用例:
または
私が皆さんに共有したいのは、CMD または ENTRYPOINT コマンドを使用して Docker で複数のサービスを同時に起動する方法に関する上記の記事だけです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
目次アプリを登録するときに何をすればよいですか?ページを登録するときに通常何をする必要がありますか?...
Shtml と asp は似ています。shtml という名前のファイルでは、asp の命令と同様に、...
開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...
目次MySQL インデックス最適化ページングの調査ケース1ケース2 MySQL インデックス最適化ペ...
この記事では、VMware Workstation 14 Proにシステムをインストールする方法を紹...
Flexの基本概念フレックス レイアウト (フレックスはフレキシブル ボックスの略)、エラスティック...
/****************** * Linux カーネルの時間管理 ***********...
1. 絶対位置とマージンを使用するこの方法の原則は、左側と右側をドキュメントの流れから外れるように配...
デフォルトでは、Flash は常にページのトップレベルに表示されます。つまり、ページに DHTML ...
目次セーフモード設定テスト1. where句なしで更新および削除する2. 非インデックスキーの削除3...
Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...
目次1. コンストラクタの定義と呼び出し2. 新しいキーワードの目的3. コンストラクタの問題: メ...
3つの機能: 1. コンテンツの垂直方向の自動中央揃え2. デフォルトのプロンプトテキストは灰色で表...
序文MySQL 8.0 の最新バージョンは 8.0.4 rc であり、正式版は近日中にリリースされる...
この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...