問題タブ [docker-stack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - docker-compose ファイル内の env var としてランダムなサービス ポートを取得および設定する方法は?
docker-compose.yml の例を次に示します。
サービスのランダムなポートを取得し、次のurl
ように env 変数内に設定したいと思います。
url: "http://ghost.localhost:{{.Service.Port}}"
最終的な目標は、ポートを手動で設定せずに複数のスタックをデプロイすることです。
docker stack deploy --compose-file=docker-compose.yml ghost1
docker stack deploy --compose-file=docker-compose.yml ghost2
docker stack deploy --compose-file=docker-compose.yml ghost3
それが可能だ ?
docker - docker stack によるボリュームのマウント
以下は私の docker-stack ファイルです。
私のマシンでは問題なく動作し、証明書フォルダーをコンテナー内の証明書にバインドします。ただし、このサービスを docker-stack-node イメージ内にデプロイしている CI パイプラインでは機能しません。私が得るエラーは
タイプ「バインド」の無効なマウント構成: バインド マウント ソース パスが存在しません。
ホスト パスをサービスのコンテナーにバインド マウントする場合、パスはすべての swarm ノードに存在する必要があることを読みました。したがって、名前付きボリュームを作成する必要があると思います。ただし、名前付きボリュームでは、証明書のソース パスを指定できません。ややこしい。誰かがこれを手伝ってくれますか?
docker - 許可拒否エラーのために拒否された Docker スタック タスク
コマンドを使用してスタック (1 つのサービスを含む) をデプロイし、docker stack deploy
swarm でアプリケーションから 2 つのインスタンスを実行しようとしました! これが私のdocker-composeファイルです:
コマンドを実行した後sudo docker stack deploy -c ./docker-compose.yml ts
、スタックは swarm に正常にデプロイされましたが、docker stack ps ts
出力は次のとおりです。
完全なエラー メッセージはmkdir /var/lib/docker: permission denied です。
docker service create
もう 1 つの問題は、コマンド サービスをデプロイして正常に実行しているスタックを作成しようとしたときに、ローカルホストからサービスにアクセスできないことです。2 つの質問があります。
- Compose ファイルからスタックをデプロイする際の問題と、なぜmkdir /var/lib/docker: permission deniedエラーが発生するのですか?
- ホストからアクセスできるようにサービスネットワークを構成する方法は?