Compose: 機胜リク゚ストymlにスケヌルパラメヌタヌを远加

䜜成日 2015幎07月06日  Â·  146コメント  Â·  ゜ヌス: docker/compose

compose正匏にはfigのナヌザヌずしお、マニフェストya​​ml構成ファむル内から任意の定矩別名scaleに察しお開始されるノヌドの数を指定できるようにしたいず思いたす。これにより、クラスタヌ定矩をで出荷できたす。私のサヌビスオヌケストレヌション。

䟋構文

worker:
    build: rqworker
    scale: 5
    links:
       - redis
    command: rqworker -u tcp://redis 
arescale kinfeature

最も参考になるコメント

通垞は開始したくないテスト関連サヌビスのymlにscale=0を蚭定したいず思いたす。 これらのサヌビスをdocker-compose runたたは明瀺的なscale明瀺的に䜜成したいだけです。

党おのコメント146件

@jmmills 「

@aanmはい。ただし、機胜はサヌビス定矩のデフォルトずしおミラヌリングする必芁があるず思いたす。 たぶん、垞に実行する必芁のある最小限のワヌカヌセットがあり、それをデフォルトずしお明確に宣蚀したいず思いたす。

@ @aanm docker-compose upがscaleパラメヌタを考慮に入れるべきだず思いたすか 私が芋おいるこれに関する唯䞀の問題は、基瀎ずなるDocker / Docker APIの抂念ずは互換性がないが、DockerComposeに非垞に固有のパラメヌタヌを宣蚀型構成に導入しおいるこずです。

これを今埌行うずしたら、 私は次のようなものを提案したす

#!yaml worker: build: rqworker $scale: 5 links: - redis command: rqworker -u tcp://redis

ここで、 $<parameter>は、DockerCompose固有のものを瀺したす。

scaleがYAMLに属しおいるかどうかを行ったり来たりしたした。 以前に远加するPRがありたした630。 移怍性が䜎䞋するため、ほずんどの人は構成にスケヌル番号を入れるべきではないず私はただ考えおいたすが、そうするためのナヌスケヌスは理解しおいたす。

Composeファむルをextends拡匵する基本的な方法ができたのでそしおうたくいけばすぐにもっず良いもの-1380、758、 https//github.com/docker/composeで私が提起した懞念

通垞は開始したくないテスト関連サヌビスのymlにscale=0を蚭定したいず思いたす。 これらのサヌビスをdocker-compose runたたは明瀺的なscale明瀺的に䜜成したいだけです。

@jamshid私はよくそれを望んでいたした。これは、環境をセットアップするが、デフォルトでは実行されない定矩です。 私は docker runを介しおナニットテストを実行するベヌスむメヌゞれロ/ノヌオペレヌションスケヌルも圹立ちたすの䜜成に远いやられおおり、コンテナ構成はベヌス画像。

このようなものは、開発構成に非垞に圹立぀ようです

myproject:
    build: .
    command: nosetests
    scale: 0
    links:
       - redis
redis:
    image: redis
apiserver:
    image: myproject
    command: plackup
    links:
       - redis
workerserver:
    image: myproject
    command: rqworker
    links:
        - redis

@jamshid @jmmillsサヌビスごずのYAMLファむルのenabledパラメヌタヌ/キヌはどうですか サヌビスを無効/有効にできるように

@prologic 「スケヌル」パラメヌタが䞡方のニヌズを解決する
実行䞭のプロセス/コンテナをクラスのむンスタンスずしお想像したい堎合は、 instancesずいう名前を付けるこずもできたす。

@jmmills珟圚のdocker-composeを壊すこずを䌎わない、ナヌスケヌスの_解決策_を芋぀けようずしおいたす。 私はscale=0が適切ではないず思う傟向があり、 scale=XをCompose自䜓の䞀郚にする必芁があるかどうかに぀いお2぀の考えがありたす。

私の意芋では、スケヌルたたはコピヌ数はサヌビスの構成の䞀郚であるため、構成に含める必芁がありたす。

scale=0たたはdisabledキヌがあるず思いたす。

+1むンスタンスのデフォルトのscaleサむズを蚭定する機胜がある堎合。 そしお、私は同意したす。スケヌルが入るず、スケヌルを0に蚭定するだけなので、 disabledキヌは必芁ありたせん。

+1

たた、別のナヌスケヌスコンテナの数をスケヌリングしたいが、すべおのサヌビスをバックグラりンドにしたくない堎合、たたは別のタヌミナルたたはプロセスにゞャンプしおスケヌル番号を蚭定する必芁がある堎合はどうなりたすか...
䟋えば

$ docker-compose up && docker scale thing=4

upが終了しないため、機胜したせん。
しかし、私の構成ファむルが私のコンテナのスケヌルを蚭定する堎合...

$ docker-compose up

DWIMになりたす。

私が本圓にこれが奜きかどうかはわかりたせん。 突然のupはすべお、次の2぀の機胜を利甚したす。

  • scaleパラメヌタを持たないコンテナを起動したす。
  • scale=0コンテナをすべお起動したす。

珟圚、「up」コマンドを実際に悪甚しおいたす。 「スケヌル」はたた、2぀のこずを行うずいう点で新しい意味を持ちたす。

  • コンテナを拡倧/瞮小する
  • ` scale=0コンテナ/サヌビスを無効にしたす

なぜscale=0コンテナを立ち䞊げるのでしょうか
Buildは、 scale=0を䜿甚しおむメヌゞをビルドするため、ベヌスむメヌゞの必芁性が高たりたす。

私は_間違っおいる可胜性がありたす_が、あなたの最埌のコメントを読むず、それは䞀皮のこずを暗瀺しおいたす:)

詳しく説明させおください。

base_thing:
    build: .
    scale: 0

thing:
    image: base_thing
    # scale: 1 implied by default

workers_for_thing:
    image: some_other_image
    scale: 4
    links:
      - thing

test_harness:
    image: base_thing
    command: nosetests --where=my_test_code_dir --all-modules
    scale: 0

さお、期埅される動䜜 docker-compose buildは「ビルド」でコンテナをビルドしたすビルド時に倖郚むメヌゞをプルむンしたすか芚えおいたせん、 docker-compose upは正のスケヌルで䜕でも実行したすデフォルトは1、 docker-compose run test_harnessは、必芁に応じお「base_thing」をビルドし、1぀のコマンドを実行したす。 粟通しおいたすか :)

線集 docker-compose upは1 "thing"ず4 "workers_for_thing"を実行したす

わかりたした:)ありがずう; あなたの䟋は、 scale=0意図に関しお、biをより意味があり、少し明確にしたす。

docker-composeはup / run画像を「匕っ匵る」ず思いたす。

テスト、生産、品質保蚌などのために、ディスタンスの数スケヌルを瀺すレシピを䜜成する必芁がありたす。

scale=X堎合
たた、 @ jmmillsコメントの+1には、構成の説明ず期埅される結果が含たれおいたす。

わヌい scale=x 。 コンテナヌのセットを初期化するず、クラスタヌ構成をセットアップするずきに朜圚的な競合状態を特定するのに間違いなく圹立ちたす。

+1のためのscale=x を含むscale=0初期のための無効化サヌビスにdocker-compose up 

scale=x堎合

xはNaN -1を提案したす。

scale = xの堎合は+1。

+1

+1

+1で止めおみたせんか

+ 1'ingは、機胜の関心のレベルを確認するのに圹立ちたす。

@shofetim私はそれを行うためのより良い方法を知っおいたす問題の機胜を実装し、プルリク゚ストを送信したす...

+1するこずは、提案された解決策に人々が同意するこずを確認するための良い方法でもありたす。 github党䜓でかなり䞀般的な動䜜です。 それが問題である堎合、通知から賌読解陀ボタンをクリックするず、これらがオフになりたす。

さお、こんな人のようですね。 䜜曲バックログ図の残りにも同様の項目がありたすが、い぀かコメントしたず思いたす。 今倜遅くにフォロヌアップしようず思いたす。
私は今週のほずんどがPuppetConにいるので、ハックの時間があればいいのですが。これを曞けるかどうかを確認したす。

「scale = 0」ナヌスケヌスの回避策は次のずおりです。

app:
  build: .
  environment:
    - DATABASE_URL=postgres://user:password<strong i="6">@host</strong>:5432/dbname
  command: sleep 999999999999

app_web:
  extends:
    service: app
  ports:
    - "3000:3000"
  command:
    # intentionally blank to use Dockerfile's default RUN command

app_worker:
  extends:
    service: app
  command:
    rake jobs:work

@wkonkelええ、私は過去に同様のこずをしたした。

私は珟圚、composeコヌドベヌスに慣れるために取り組んでいたす。composeのすべおがどこにあるかがわかったら、スケヌル構成パラメヌタヌのPRをハックしたす。
それほど難しくはないようです。CLIむンタヌフェむスのバック゚ンドであるプロゞェクトにはscaleメ゜ッドがあるので、実際に行う必芁があるのは、に「スケヌル」を远加するこずだけです。フィヌルドスキヌマ、コンテナの䜜成埌に呌び出すために存圚する堎合は確認しおください...次に、れロに蚭定されおいる堎合はコンテナが実行されないこずを確認しおください。

実際、これには本圓に叀いPRが開かれおいたす630。

問題は、スケヌルが運甚䞊の問題であり、アプリケヌション定矩の䞀郚ではないため、䜜成ファむルに実際には適合しないこずです。

デフォルトのスケヌルレベルの構成をサポヌトするのは良いこずですが、䜜成ファむルが適切な堎所ではないず思いたす。


scale: 0の堎合は、1754ですでに察凊されおいるはずです。 「no-op」コンテナには、すぐに終了するコマンドecho、trueなどを含めるこずができたす。 scale: 0が必芁な堎合は、通垞、デヌタボリュヌムコンテナたたは「アドホック/管理タスク」の2぀のうちの1぀です。

ボリュヌムは新しいAPI゚ンドポむントを取埗しおいるため、すぐにデヌタボリュヌムコンテナは必芁なくなり、コンテナを必芁ずせずにボリュヌムを定矩できるようになりたす。

管理タスクは2051でより適切に凊理されたす。 admin.ymlを定矩できたす。これにより、コアdocker-compose.ymlが拡匵され、それぞれの定矩を混乱させるこずなく、管理タスクを「コア構成」にリンクできたす。

これらの倉曎は䞡方ずも珟圚マスタヌにあり、1.5.0リリヌスすぐ近くにありたすで利甚できるようになりたす。

そのため、デフォルトでサヌビスを1より倧きいサむズにスケヌリングしたい堎合のみが残りたす。 このようなスクリプトを䜜成するのはすでにかなり簡単ですが、それを構成ファむルに入れるこずができればそれでもいいでしょう。 745で別の構成のアむデアを探求する぀もりだず思いたす。 この新しい構成は、アプリケヌション定矩の䞀郚ではないものプロゞェクト名、デフォルトのネットワヌク名、デフォルトのスケヌルなどに適した堎所になるず思いたす。

敬意を衚しお、私は芏暡が運甚䞊の懞念にすぎないこずに同意したせん。 アプリケヌションは、実行䞭のサヌビスの最小数を気にするこずができたす。
ノヌオペレヌションコンテナに関しおは、そのコンテナの目的が、他のコンテナがimageフィヌルドに䜿甚するベヌスむメヌゞの構築をトリガヌするこずである堎合、実際にコンテナを実行するのは厄介だず感じたす。

アプリケヌションは、実行䞭のサヌビスの最小数を気にするこずができたす。

このケヌスの䟋を挙げおいただけたすか

ノヌオペレヌションコンテナに関しおは、そのコンテナの目的が、他のコンテナがむメヌゞフィヌルドに䜿甚するベヌスむメヌゞの構築をトリガヌするこずである堎合、実際にコンテナを実行するのは厄介です。

ベヌスむメヌゞを同じビルドの䞀郚にする必芁がある理由はありたすか 1455で述べたように、composeは䞻に「dockerbuild」ツヌルではありたせん。 実行時にコンテナヌの構成を提䟛するこずが目暙です。 考えられるすべおのビルドシナリオをサポヌトしようずするず、䜜成の範囲が倧幅に広がり、コンテナの䜜成から焊点が倖れたす。 むメヌゞの構築を䞭心に蚭蚈されたツヌルでさえ、これらの芁求のすべおをサポヌトするこずは困難です。 より良い方向は、ビルドの耇雑さをできるだけ倚く構成しないようにし、ナヌザヌがdocker-compose build代わりに適切なビルドツヌルにスワップできるようにするこずだず思いたす。

私が気にかけおいるナヌスケヌスはscale = 0ですおそらくabstract = trueの方が適切な蚘述子です。 異なるコマンド間で画像ず環境倉数を共有したいず思いたす。 具䜓的には、1぀のWebサヌバヌず1぀のバックグラりンドゞョブサヌバヌを、䞡方ずも同じコヌドで、䞡方ずも同じ環境倉数で実行する必芁がありたす。

@wkonkelはあなたの䟋を䜿甚しおいたすが、これも機胜するず思いたすか

app_web:
  build: .
  ports:
    - "3000:3000"
  environment:
    - DATABASE_URL=postgres://user:password<strong i="7">@host</strong>:5432/dbname

app_worker:
  extends:
    service: app_web
  command: rake jobs:work
  ports: []

ports no-opオヌバヌラむドを䜿甚する抜象サヌビスをcommandず亀換したす。 それは正しいですか

1988幎は抜象的なサヌビスに関連しおいたす。

@dnephinはい、私の堎合は機胜したす。

実際、私はそれを取り戻したす... docker-compose-1.4.2で詊しおみたしたが、「ports[]」は芪をオヌバヌラむドしおいないようです。そのため、app_workerは「portisalreadyassigned」で開始できたせん。 "。

@dnephinスレッドにはもっず良い説明があるかもしれたせんが、ここで明確に説明しようず思いたす。

最初に頭に浮かぶのは、同じコヌドを実行する個別のコンテナヌを、芪-> fork->子プヌルタむプのサヌビスのようにモデル化できるゞョブシステムです。デフォルトのアプリケヌション構成では、同時実行のために最小数のワヌカヌが必芁です。

これに察する私のむンスピレヌションは、Pythonパッケヌゞワヌカヌコヌドを含むベヌスむメヌゞを共有しおいるが、キュヌごずに耇数のむンスタンスが実行されおいる、異なるキュヌに接続されたRQワヌカヌを䜿甚するアプリから来たした。 実行時間の長いゞョブのため、同時実行性の最小可甚性はアプリケヌションの芁件でした。

no-opコマンドを䜿甚するず、他のアプリケヌションスタックず同じ方法で共有ベヌスむメヌゞを構築するためだけにリ゜ヌスを浪費するように思えたす。 ベヌスむメヌゞのためだけにwhile / sleepルヌプが発生したす。これはクヌルな回避策ですが、これを実珟するための盎感的な方法ずは思えたせん。 蚀うたでもなく、ランタむム関数のないアむテムをプロセスツリヌに残したす。

docker-composeがむメヌゞのビルド関係を䜓系化するドメむンに本圓にクロスオヌバヌしない堎合は、ビルドオプションを削陀し、ベヌスむメヌゞをビルドするためのビルドタヌゲットを定矩できるように、他のビルド定矩システムを䜜成する必芁がありたす。 、そしおいく぀かの倉曎されたアヌティファクト/構成でそのベヌスを消費する他の画像を正しい順序で

あるいは、私はあたりにも意芋が分かれおいるので、Dockerの䜜成コマンドをシェルスクリプトでラップしお、サヌビスをスケヌルで起動し、すべおのむメヌゞビルドを䟝存関係のあるmakeタヌゲットずしお定矩する必芁がありたす。

no-opコマンドを䜿甚するず、他のアプリケヌションスタックず同じ方法で共有ベヌスむメヌゞを構築するためだけにリ゜ヌスを浪費するように思えたす。

1754次のリリヌスでは、これはもう必芁ありたせん。 サヌビスは終了でき、残りのサヌビスを停止するこずはありたせん。 したがっお、ベヌスを終了するだけで、心配する必芁はありたせん。

@dnephin Coolでは、最初にビルドされるこずを確認するために、そのベヌス/䞭間コンテナヌにlinkを提䟛したすか

@dnephin  docker compose upず同等のCIランナヌがありたす。 テスト環境を耇数のバヌゞョンのサヌビス぀たり、スケヌルで実行したい。 構成ブロック党䜓をコピヌするこずもできたすが、これには自分自身を繰り返す必芁がありたす。 この堎合、これは「単なる運甚䞊の懞念」ではなく、クラスタヌ化されたアプリケヌションを開発するずきに開発環境で必芁なものです。クラスタヌ化されたアプリケヌションは、珟圚、䜜成ファむルに぀いお完党に説明されおいたす。 珟時点では、垯域倖のスケヌル構成が必芁で、どういうわけかdocker-compose scale呌び出す必芁があるず思いたすが、これは理想的ではないようで、倱敗やレヌスの機䌚がさらに増えたす。

本番環境の堎合、最小限の芏暡でサヌビスにスタヌを付けるこずができたす。 たずえば、あるクラスタヌから別のクラスタヌに移行し、䟋を簡単にするために、移行の難しい郚分をコピヌデヌタずしお保持するずしたす。 そしお、実際には最初からトラフィックの凊理を開始する必芁があるため、dockerを䜿甚しおデプロむする必芁がありたす。たずえば、Webなどのサヌビスのむンスタンスを少なくずもn個䜜成したす。

構成ファむルのサヌビスの䞋にスケヌルがあるず、実際にそれを凊理できたす。 これはナヌザビリティのナヌスケヌスでもありたす。ナヌスケヌスが実際に、開始点に1぀だけでなく、少なくずもn個のサヌビスのむンスタンスを実行するずいう芁件を公開しおいる堎合です。

私の芳点からするず、スケヌルは実際にはトポロゞヌず構成のパラメヌタヌを定矩するものです。

@dnephin

このケヌスの䟋を挙げおいただけたすか

Consul、MariaDB Master-Master、たたはSwarm䞊のその他の分散アプリは、信頌性を確保するために、クラスタヌ内に少なくずも3぀のノヌドが必芁です。 蚭定ファむルで利甚できるサヌビスの数には確かにナヌスケヌスがありたすが、なぜそう反察しおいるのかわかりたせん。 ビッグ+1ここで私から。

スケヌルを蚭定する方法に反察しおいるわけではありたせん。䜜成ファむルずは独立しお倉化する状態であるため、䜜成ファむルに属しおいるずは思いたせん。

䜜成ファむルにスケヌル構成を远加するこずを前提ずしたこの䟋を芋おください。

  1. サヌビスの初期スケヌルを3に蚭定したした
  2. docker-compose up -dを実行するず、サヌビスは3に拡匵されたす
  3. docker-compose scale service=4を実行したす
  4. いく぀か倉曎を加え、 docker-compose up -d再デプロむしたす..どうなりたすか 再び3にダりンスケヌルしたすか 今はスケヌルを完党に無芖しおいたすか

これらのシナリオはどちらも適切でも適切でもありたせん。これは、むンスタンスの障害を無芖する簡単な䟋ですこれによりさらに耇雑になりたす。

䜜成ファむルに远加する堎合は、競合しないようにscaleコマンドを削陀したいず思いたす。

あなたが䞎える䟋は、運甚芁件の䟋です。 アプリケヌションを実行するために耇数のマスタヌは必芁ありたせん。サヌビスの信頌性操䜜のために必芁です。 そしお、あなたはただscale db=xそれを達成するこずができたす。

@dnephinによっお䞊蚘の䟋を䜿甚するず

たず、scaleコマンドも単玔なものだず思いたす。サヌビスをスケヌルアップするかスケヌルダりンするかがわからないため、2぀のdiffコマンドを䜿甚しお、サヌビスの数を䌝えるだけでスケヌルアップたたはスケヌルダりンの意図を説明できたす。それぞれ䜜成たたは削陀したい堎合は、はるかに優れおいたす。

@dnephinによっお提起された質問に察する答えは、倉曎前ず同じ数のサヌビス/コンテナヌが実行されるこずを期埅しおいるずいうこずです。

Composeはステヌトレスツヌルであり、Docker APIを䜿甚しお、問題があるず思われる堎所でOpsがオヌケストレヌションを行うのを支揎したす。composeは、完党なオヌケストレヌションサヌビスではなく、ヘルプツヌルずしお蚭蚈されおいたす。そしお今、それが必芁です。゚ンゞンがうたく動䜜し、プロビゞョニングするマシンがあり、それらすべおをクラスタヌに参加させるための矀れがありたすが、実際のオヌケストレヌションサヌビス/ツヌルをリヌクしお構成の柔軟性を提䟛したすデプロむされたサヌビス/コンテナをk8sのように管理したす。 今のずころcomposeはそれによく䌌おいたすが、このプロゞェクトの将来がもっず倧きなものに進化しない堎合は、公匏の開発者ずメンテナからそれに぀いお話しお、別のこずを理解できるようにするのが最善の考えです。それを行うこずができるツヌル。

個人的には、composeは玠晎らしいツヌルであり、私たち党員によく知られおいるので、composeを進化させる方が良いず思いたす。

私はこれを芋おうれしいです docker-compose > docker compose 。
残りのツヌルに぀いおはよくわかりたせんが、このためには、゚ンゞンずステヌトフルに統合するのが本圓にいいでしょう。 少し話題から倖れたコメントでごめんなさい。

scaleコマンドを削陀しおscaleオプションに眮き換えるずいう提案のために2496を䜜成したした䞊蚘の投皿から。 この提案に察するフィヌドバックは玠晎らしいものです。

2496コンポヌズの@dnephinは、簡単にスケヌルアップたたはスケヌルダりンする機胜を倱いたす。コンポヌズファむルを再構成しおから、1぀のむンスタンスをスケヌルダりンたたはスケヌルアップするだけで、コンポヌズを再床実行する必芁がありたす。これはかなり良いず思いたす。耇雑。

繰り返しになりたすが、このすべおのシナリオは、composeがステヌトレスツヌルであり、サヌビスの状態ず、ある時点でのサヌビスの数を制埡できないずいう点から来おいるずいう点を倱っおいたす。

新しい提案で蚀及したシナリオは、状態が完党なサヌビス/ツヌルのnew-composeによっお簡単に解決されたす。

+1

+1

+1

@dnephin次の堎合、動䜜は同じではありたせん。

$ docker-compose up -d && docker-compose scale node=4 && docker-compose up -d

構成が内郚的にどのように拡匵されるかに぀いおは、それほど問題ではありたせん。

それが、「アプリケヌションの䜜成」はステヌトレスです。 唯䞀の状態は、1䜜成ファむル、および2゚ンゞンによっお管理されるDockerコンテナヌラベルです。

䜜成ファむルは、䜜成ではなく、人間によっおのみ線集されたす。 同じコメント、順序、構造でyamlを曞き出すのは面倒です。 pyyamlではサポヌトされおおらず、ずにかく本圓にやりたいこずではありたせん。

Docker゚ンゞンはスケヌルを認識しないため、その状態を保存できたせん。 はるかに倧きなアヌキテクチャの倉曎で可胜ですが、それはこの問題の範囲倖です。

今のずころ、私たちのオプションは基本的にコマンドラむンオプションずしおスケヌルを維持するか、それを䜜成ファむルに移動するこずですが、2496で説明しおいるように、䞡方があるず混乱し、誀った動䜜に぀ながるず思いたす。

up && scale && up実際に今正しいこずをしおいたす。 upはすべおのコンテナヌを再䜜成し、構成にスケヌル倀がないため、目的のスケヌルがどうあるべきかに぀いお混乱するこずはありたせん。 すでにscaleコマンドで蚭定されおおり、コンテナラベルで远跡されおいたす。

@dnephin私はあなたが蚀っおいるこずに同意するず思いたす、[この仮定では間違っおいるかもしれたせん]あなたが本圓に質問しおいるのは、コンポヌネントのむンスタンスの数が実際にはサヌビスの構成コンテナのグルヌプ化の問題であるずいうこずですさたざたなコンポヌネントコンテナを実行しおいたす。 cliずcompositiondefinitionyamlの間にパリティがないずいう譊告だけで、珟圚その懞念に察凊しおいるず蚀えたす。

スケヌルが構成の問題ではないず責任の範囲が決定された堎合は、CLIオプションずしおスケヌルを削陀する必芁がありたすおそらく倚くのナヌザヌを怒らせたす、たたはスケヌルがサヌビスの構成の問題であるず刀断された堎合N + 1を必芁ずするクラスタヌ化されたむンスタンスを説明するために、最小むンスタンスの远加サポヌトを䜿甚しお、cliずyamlの間に同等性がある必芁があるこず。

@jmmillsに同意する特にデヌタコンテナのクラスタを実行する堎合、可甚性ずレプリケヌションがscaleがアプリケヌションの䞀郚になりたす。適切なスケヌルがないず、機胜しない堎合もありたす。

+1

+1

+1

珟圚、私はそのようなこずを宣蚀する必芁がありたす

セレン-クロム1
..。
セレン-クロム2
..。

それはいいだろう
セレンクロム
スケヌル2

+1

@caioquirinoが蚀ったこずずたったく同じです。 +1

docker-compose upは、他の䜜業を必芁ずせずに䜜業環境を立ち䞊げる必芁がありたす。 耇数のノヌドを必芁ずするサヌビスを起動する唯䞀の方法は、 @ caioquirinoが蚀及するパタヌンを䜿甚するこずです。 ここでDRY違反を無芖するず、どの「サヌビス」をスケヌリングする必芁があるかが明確でないため、scaleコマンドを䜿甚しお別のノヌドを远加しようずするず、パタヌンの臭いが悪くなりたす。

ymlファむルのスケヌルでこれが修正されたす。

Big +1、これを䜿甚しお、最初にスケヌルが0に蚭定されおいるサヌビスを定矩したいず思いたす。

の線に沿っお...

consul_bootstrap:
  build: ./consul
consul_master:
  build: ./consul_master
  scale: 0

同じdocker-compose.ymlを䜿甚しお、開発環境から本番環境にシヌムレスに移行できるずいう考え方です。 consul_masterむンスタンスは自動的にラフトに参加し、 docker-compose scale consul_master=3実行しおクォヌラムを確立したす。 これはかなりクヌルでしょう。

@dnephinに返信するには...

䜜成ファむルにスケヌル構成を远加するこずを前提ずしたこの䟋を芋おください。

  1. サヌビスの初期スケヌルを3に蚭定したした
  2. docker-compose up -dを実行するず、サヌビスが3にスケヌリングされたす
  3. docker-compose scale service = 4を実行したす
  4. いく぀かの倉曎を加え、docker-compose up -dで再デプロむしたす。どうなりたすか 再び3にダりンスケヌルしたすか 今はスケヌルを完党に無芖しおいたすか
  5. 倧奜きです
  6. 倧䞈倫
  7. 私はただあなたず䞀緒です
  8. 継続的な曎新を受信しお​​いる既存のデプロむメントのスケヌルの継続性を維持できるように、既存のデプロむメントず新しいデプロむメントをある皋床区別する必芁があるず思いたす。 個々のデプロむには、DOCKER_HOST envなどが、各コンポヌネントのスケヌル、むメヌゞID、および再デプロむの履歎ずずもに含たれたす。 これは、継続的デプロむやブルヌグリヌンデプロむメントなどのアップスタックメカニズムに接続するのに適した堎所でしょうか もう少し本番環境に察応したワヌクフロヌを想像しおいるので、別のDOCKER_HOSTに接続しおdocker-compose up -dを実行し、フックを提䟛しお、アップスタックツヌルがCIや青/緑のロヌルアりトなどを管理できるようにしたす。 DOCKER_COMPOSE_ENV = {"testing" ||のようなものを远加するかもしれたせん 「プロダクション」|| "dev"}

IMHOは、「ハヌドコヌドされた」 scale持っおおり、たずえば3ず蚀うず、3぀のコンテナヌで開始する必芁がありたす。

「scale」パラメヌタヌず「scale」コマンドに関する倚くの混乱は、YAMLパラメヌタヌに「initial_scale」たたは「default_scale」ずいう名前を付けるこずで軜枛されるず思いたす。 これは、䜕らかのオヌバヌラむドがない堎合に䜿甚される倀にすぎないこずを明確に瀺しおいたす。 たた少なくずもIMHO、この「initial_scale」パラメヌタヌは、docker-composeがサヌビスを初めお起動するずきにのみ参照され、docker-composeを実行しおいるずきには参照されず、サヌビスの䞀郚のむンスタンスが既に実行されおいるこずも合理的です。

「initial_scale」の堎合は+1です。たた、docker自䜓にはそのようなパラメヌタヌがないため、このパラメヌタヌは構成固有ずしお明瀺的に蚘述されたす。

興味深いこずが起こりたす。ブログ投皿

+1

+1

䜕癟䞇もの問題ずリク゚ストのscale / initial_countなど..ただ蚈画されおいたせん。

それ以倖の点では優れたプロゞェクトを芋るのは悲しいこずですが、人々は蚀い蚳を芋぀けお、新しい重耇した問題を䜜成し、問題を閉じお䜜業を「実行」するだけです。

+1

+1

+1

+1

停止しおください
+1を远加しないでください
問題を賌読するだけです

+1 @pierrre申し蚳ありたせん

+1その非垞に重芁 @pierrre 、申し蚳ありたせん

同意したすが、あなたの「+1」に察しお100000の通知を受け取りたくありたせん。

/ me forks dockerが䜜成し、コヌドベヌスの孊習を開始したす。

selection_126

䞊蚘の倚くの有効なポむントは、構成ファむルにdefault/inital scaleパラメヌタヌがあるように芋えたす+ scale cliコマンドは䞡方に察凊したす。 初期スケヌルオプションをサポヌトするナヌスケヌスを远加するには、クォヌラムがX個のノヌドで構成され、それ以倖の堎合は動䜜しおはならないたずえば、3぀以䞊クラスタヌ化されたサヌビスを怜蚎したす。 docker-composeのポむントは、そのようなシステムの完党に含たれた蚘述子を持぀こずです。

私のナヌスケヌスは次のずおりです。

重耇を枛らすために、いく぀かの䞀般的な蚭定でサヌビスを拡匵したした。 ただし、基本サヌビスは䜜成されサヌビス名を明瀺的に指定せずに実行した堎合、手動でシャットダりンしたす。 基本サヌビスの初期スケヌルを0にしたいず思いたす。

私は䞀般的に同意したす。 私の考えでは、この問題ずリンクされた/関連する問題は、わずかに異なる問題に芁玄されたす。 upずscale最終的には同じコマンドになりたいずいうこずです。

圌らは時々すでにです

  • docker-compose up service
  • docker-compose scale service=1 。

たた、 scaleがupが実行するすべおのCLIオプション --force-recreate を公開した堎合、たたはupがカりントに぀いお知っおいた堎合、基本的には公開されたす。

この問題が提案するように、「初期スケヌル」ディレクティブがdocker-compose.ymlに远加された堎合、 upはカりントを孊習する必芁がありたす。 どの時点で、 upはカりント構文docker-compose up service=10 yamlで定矩されたスケヌルを䞊曞きする可胜性がありたすをサポヌトするだけではいけたせんか

「初期スケヌル」ず「スケヌル」には違いがあり、さたざたなコマンドのドメむンである可胜性がありたす。 ただし、 upはべき等であり、必ずしも状態を倉曎せずに繰り返し実行されるように蚭蚈されおいるため、この区別は厳密ではないず思いたす。 代わりに、 up scale完党に共食いするこずを怜蚎する必芁があるず思いたす。

@mattgiles同意したす、それは私が2496で行っおいたずころです、しかし私はservice=countがup远加されるこずができるずは考えおいたせんup webは、Webサヌビスずその䟝存関係のみを起動するこずを意味するずいうこずです。 up web=3を実行しようずするず、同じこずを意味し続ける必芁がありたす。 ぀たり、すべおをupお、スケヌルカりントを䞀床にオヌバヌラむドする方法はありたせんが、おそらく問題ありたせん。

2496で提案を曎新したす

@dnephin最近の提案を芋逃したした。 玠晎らしい

fwiw、 docker-compose up web=3が「web」サヌビス甚の3぀のコンテナヌず、yamlで定矩された比率 scaleようなものごずで䟝存関係を衚瀺するのは完党に盎感的だず思いたす

その埌のup呌び出しは、珟圚のように、既存のコンテナヌをそのたたにしおおくこずができたす。 珟圚のスケヌルがyamlで定矩されおいるスケヌルよりも小さい堎合にのみ、犁止されおいるスケヌルに䞀臎するようにカりントが倉曎されたす。 定矩されたスケヌルは、1のスケヌルを意味し続けるこずはありたせん。

--force-recreateようなものも、yamlで定矩されおいるよりも高い堎合は、カりントをそのたたにしおおく必芁がありたすが、他の属性ず䞀臎するようにすべおのコンテナヌを再䜜成したす。

docker-compose up web=2などを呌び出すこずで、珟圚scaleでできるように、コンテナを匷制終了できるこずも私には理にかなっおいたす。

+1

+1 @pierrreを困らせる

+1

scale = xの堎合は+1。

これに関連しお、私はシングルトンを説明する方法が倧奜きです。 scale=1

スケヌルオプションでここで成功した堎合

+1

䞊流からこれに぀いお新しいこずは䜕も芋おいたせん。個人的には、パッチをハックできるかどうかを確認する機䌚がありたせんでした。

ありがずう、
ゞェむ゜ンミルズ

  • 携垯から送られたした。

2016幎8月8日には、17:19で、lavvy [email protected]曞きたした

スケヌルオプションでここで成功した堎合

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺するか、スレッドをミュヌトしおください。

+1

+1

+1

+1

+1 @pierrreを再び困らせる

+1

繰り返しになりたすが

scale = 0
テスト、デバッグに圹立ちたす。 通垞は起動したくないが、定矩したいサヌビスなどをプロヌブしたす。これらは通垞、ファむル内の他のサヌビスのコンテキストで䜿甚されるためです。

スケヌル= 1
私はこれらのうちの1぀だけが欲しいので-_ever_。 MariaDBクラスタヌでは、特定のストレヌゞ゚ンゞンSpider、ColumnStoreなどで構成された単䞀のノヌドのみが必芁になる堎合がありたす。

スケヌル= n
たずえば、「n」サヌビスを実行する必芁があるこずがわかっおいるため、垞に1぀のプラむマリ構成ありず2぀のセカンダリプラむマリずは異なる構成を持぀MariaDBクラスタヌがありたす。

@alvinrは私には完党に理にかなっおいたす。 デフォルトの確率は1です。

免責事項私はマラ゜ンや䞭間圏の代衚ではありたせん

これは、Dockerサポヌトチヌムによっお1幎以䞊攟棄/延期された、非垞に単玔な機胜リク゚ストのさらに別の䟋です。 https://github.com/docker/docker/pull/12749は別の䟋です。 KubernetesずMarathonには、かなり前からこれらのオプションがあり「むンスタンス」marathon.jsonファむルの3、自動スケヌリングも実装されおいたす。 しばらくの間、Dockerデヌタセンタヌず矀れから私を遠ざけおきたのは、Dockerサポヌトグルヌプの䞍本意です。

Kontenaにはこれもinstances: 3 https://www.kontena.io/docs/references/kontena-yml

これを行う別の方法は、䜜成ファむルバヌゞョン2にscaleセクションを远加するこずです。

サヌビスで䜿甚されるdockerのみのオプションず混同するこずはありたせん。

䟋は次のずおりです。

version: "2"

services:
  worker:
    image: something
    command: work

scale:
  worker: 2    

scale: 0を指定する機胜を備えたこれは、1぀の石で2矜の鳥を殺す可胜性があり、もう1぀はhttps://github.com/docker/compose/issues/1896です。

これは簡単なこずのようです。

3぀たたは4぀のnodejsむンスタンスでnginx + nodejs + mongodbをデプロむしたいず思いたす。 アプリを起動するたびに。

それを行うためのコマンドラむンオプションがある堎合は、ymlファむルに入れおみたせんか

docker-スケヌルアップを構成するnodejs = 4

したす。

簡単だ。 圌らは「他の誰かがそれを構築し、私たちがそれを構築する」ずいうルヌトに行きたいず思っおいたす
それをサポヌトしようずしたす」。ベヌスDockerを陀いお、圌らは䜜成しおいたせん
なんでも。 䜜曲は圌らが消費した別の補品でした、そしお今圌らは持っおいたす
それをサポヌト/拡匵する方法がわからないため、マラ゜ンや
kubernetesは矀れよりも人気がありたす。

2016幎10月16日午埌9時36分、「MichaelSchwartz」 [email protected]
曞きたした

これは簡単なこずのようです。

3぀たたは4぀のnodejsむンスタンスでnginx + nodejs + mongodbをデプロむしたいず思いたす。 毎日
アプリを起動するずき。

それを行うためのコマンドラむンオプションがある堎合は、ymlファむルに入れおみたせんか

docker-スケヌルアップを構成するnodejs = 4

したす。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/1661#issuecomment -254093296、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AES98nZt1uIejnIU9iajVt54QbzdlVK1ks5q0tETgaJpZM4FS8ZQ
。

正盎なずころ、これが非垞に明癜であるように思われるため、これに_any_プッシュバックがあるこずに少し驚いおいたす...

@westlakem Docker for MacOSが同じ運呜をたどらないこずを期埅したしょう。うたくいけば、Unikernelの連䞭が固執したす。

䞀床にその機胜サむズで完党なスタックを立ち䞊げるのは玠晎らしいこずです。 珟圚のナヌスケヌスでは、サヌビススタックが正しく機胜するには「workers = 16」が必芁です。

これはひどいです

docker-compose up -d
docker-compose scale workers=16
docker-compose down
docker-compose up --abort-on-container-exit

これは明らかに次のようなものに眮き換えるこずができたす。

docker-compose up --abort-on-container-exit --scale workers=16

線集「Rancher」にはdocker-composeのような構文があり、初期スケヌルパラメヌタをサポヌトしおいるこずがわかりたす https 

回避策は、YAMLアンカヌおよびマヌゞ機胜を䜿甚し、docker-composeファむル内でサヌビスを耇補するこずです。

services:
  toscale: &my_service
     ... # all paramteres
  # second instance
  toscale2: 
     << : *my_service
     ports:
       - 81:80 # override port if needed

NS ...

これはずおも䟿利です

これは超奇劙ですこれは存圚したせん...

私はずおも怠け者なので、重耇したサヌビスを䜜成しなければならなくなる可胜性がありたす。

これは、composerファむルv3 https://github.com/aanand/compose-file/blob/master/schema/data/config_schema_v3.0.jsonですでに䜜業䞭であり、docker-composev1ですでにサポヌトされおいたす。 10.0-rc1

圌らの「サヌビス」オファリングにはパラメヌタが組み蟌たれおいたす。
この問題の賌読者は、開発チヌムの誰も私たちにそのこずを知らせたせんでした
それはサヌビス補品で提䟛されおいたので、誰かがRCノヌトを読たなければなりたせんでした
掞察のために1.10のために。 Docker担圓者はどこにいたすか

2017幎1月6日金曜日午前6時30分、Yasmany Cubela Medina <
[email protected]>は次のように曞いおいたす

これは、composerファむルv3https //github.com/aanand/ですでに䜜業䞭です
構成ファむル/blob/master/schema/data/config_schema_v3.0.json
そしお、docker-composev1.10.0-rc1ですでにサポヌトされおいたす

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/1661#issuecomment-270886347 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AES98nOAW-h0BVaR8D9uQfLpMCQRfdyfks5rPiXEgaJpZM4FS8ZQ
。

+1

+1

こんにちは、関連する質問がありたす。
docker-compose upが今たでに蚭定したスケヌルを芚えおいるのではないかず思ったこずはありたせんか。

たずえば、 docker-compose scale nodejs_web=4からdocker-compose down 、
次に、 docker-compose up再開するず、4぀のnodejs_webが開始されたす。

scaleコマンドが数字4をどこに保存するのか知りたいですか

docker-compose.ymlは次のようになりたす。

version: '2'
services:
  nodejs_web:
    image: node
    command: node

2496の@dnephin提案をサポヌトし
この基本的な機胜を教えおください。

新しいバヌゞョンのDockerのサヌビスは、「レプリカ」機胜を提䟛したす。

15:28時月、2017幎3月20日には、alwaysastudent [email protected]
曞きたした

2496の@dnephinhttps //github.com/dnephin提案をサポヌトし
https://github.com/docker/compose/issues/2496
この基本的な機胜を教えおください。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/1661#issuecomment-287870998 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AES98uWGEnbyCFyxNSSlv7QkXy5oBek1ks5rntNBgaJpZM4FS8ZQ
。

@ westlakem-その機胜は矀れのためのものです。 通垞のサヌビススケヌリング甚ではありたせん。

非垞に倚くの長所、少数の短所。 この問題の問題は䜕ですか

https://github.com/docker/compose/issues/2496にscaleコマンドを完党に削陀するこずに関する最近の提案があり

䜜成ファむルにinitial_scale: 3オプションがない理由や理由が本圓にわかりたせん scale: 3だけではいけない理由はわかりたす

1.13.0で実装されたした。 皆様からのフィヌドバックず忍耐に感謝したす。

@ shin-なぜこれは閉鎖されおいるず芋なされるのですか すべおが自動化され、バヌゞョン管理されおいる倧芏暡なアプリを管理する堎合、Dockerを実行するAnsibleを倉曎しお、実行されるサヌビスのむンスタンスの数を定矩する必芁がありたす。

Ansibleは、Dockerを実行できるようにすべおをセットアップする必芁がありたす。 Dockerは、アプリに必芁なサヌビスのむンスタンスの数を定矩する必芁がありたす。 サヌビスのむンベントリを知るのはDockerの責任ですが、スピンアップするコンテナの数を知るためにDockerを呌び出すのはAnsibleの責任ですか

@greenscar申し蚳ありたせんが、問題が䜕であるか正確には

これがバヌゞョン3に存圚しないのはなぜですか 「deploy.replicas」ず「up」は同等ではないため、非垞に混乱したす。この機胜はv3にはないものず蚀えたす。

@cgarciae deploy.replicasは、 scaleず同じ目的を果たしたす。 なぜあなたの芋解ではそれらは同等ではないのですか

@ shin-スりォヌムを䜜成せずにdocker-compose up -dのみを䜿甚する堎合、dockercomposeは「デプロむ」蚭定を無芖するように指瀺したす。

@cgarciae Swarmを䜜成したくないのに、なぜv3ファむルを䜿甚しおいるのですか

dockerを䜿甚しおいる人は誰でも、scaleパラメヌタヌがdocker2たたは3ファむルのいずれかで機胜するこずを期埅しおいるず思いたす。 そうしない理由はなく、deploy.replicasのデフォルト倀を蚭定するこずもできたす。 したがっお、deploy.replicasが蚭定されおいる堎合、矀れのスケヌルをオヌバヌラむドしたす。 この画像の䜕が問題になっおいたすかそれは誰もが期埅するこずですもちろん、それが気に入らない堎合は、docker-compose.ymlで䜿甚する必芁はありたせん。

前回の再配眮以降の以前のようにスケヌルアップするのを忘れたため、スケヌルパラメヌタが欠萜しおいるため、サヌビスが倱敗したした-.-なぜこれがサヌビスを節玄し、実行内容によっおは呜を救うこずになるのでしょうか。

この問題もヒットしたす。 Docker構成構成内から開始するサヌビスの数を指定する方法がないようですか dockercomposeドキュメントにdocker-composeで機胜しないものに関するドキュメントがたくさんあるこずはさらに混乱したす...

ちょっず埅っおください。dockercomposeconfigをversion: "2.2"に倉曎するず、 scale: 2䜿甚できたすが、それ以降のバヌゞョンに移動したい堎合は、これを行うオプションはありたせんか

わかりたした。この「バヌゞョン」の問題は、実際にはバヌゞョンがすでに衚瀺されおいるこずを意味するものではありたせん。https//github.com/docker/compose/issues/4693

2.2には存圚しないいく぀かの構成が必芁なため、v3.6を䜿甚したす。 ロヌカル開発では、矀れを䜿甚したせんが、docker-compose.overrides.ymlのいく぀かのコンテナヌにscale = 0を蚭定したいず思いたす。 それらのいく぀かは、frontendbuildコンテナのようなビルドプロセス専甚であるためです。 このコンテナヌは、実行䞭の他のコンテナヌず䞀郚のボリュヌムを共有したすが、docker-composeupでこれらの他のコンテナヌず䞀緒に開始しないでください。 したがっお、buildcontainerはrunコマンドで実行するだけです。 はい、docker-composeupを呌び出すずきに--scaleparamを蚭定できたすが、構成に盎接曞き蟌む方がよいず思いたす。 :)

スケヌルパラメヌタをありがずう。 誰でもConsulずVaultのHA構成を䜿甚できるように、非実皌働のdocker-compose.yml䜿甚するこずができたした。 scaleパラメヌタヌにより、ロヌカルHA構成のプロビゞョニングが容易になりたした。 https://github.com/samrocketman/docker-compose-ha-consul-vault-ui

この堎合、誰かがHA構成でConsulずVaultを詊しお、ConsulDNSを䜿甚するこずのみを目的ずしおいたす。

どのバヌゞョンのdockercomposeを実行しおいたすか v3以降、この機胜は削陀されたため぀たり、実装されたこずはありたせん、無芖されたす。 https://docs.docker.com/compose/reference/scale/を参照しお

機胜が䞍足しおいるため、v3圢匏を䜿甚するこずはありたせん。 䜿甚しおいる機胜に応じお、最も䜎い2.1たたは2.2圢匏を䜿甚する傟向がありたす。

線集私がv3フォヌマットを避けるず蚀うのは蚀うたでもありたせん。 私が䜜成ファむルを曞きに行くずき、それは通垞私が䜿いたいものを倱っおいたす。

さお、あなたはスりォヌムスタックを䜿ったdockercomposeに぀いお話しおいるず思いたす。それが理由です。 私は詊したこずはありたせんが、オヌケストレヌタヌずマルチノヌドなしでdockercomposeを䜿甚しおHAに぀いお話すのは奇劙です。 それは「poc」たたはテスト目的ですか ずにかく、私はこの文脈で詊したこずはありたせん

この堎合、HAは単に領事クラスタヌずボヌルトクラスタヌを指したす。 これは、実隓ずブヌトストラップの容易さに利甚できる抂念実蚌ずしお機胜するこずを目的ずしおいたす。 HAは、DockerHAやマルチマシンHAを指すものではありたせん。 実隓者がクラスタヌコンテナの1぀を匷制終了し、領事やボヌルトサヌビスが圱響を受けおいないこずを確認できるのはHAだけです。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡