Compose: バヌゞョン3のDepends_on

䜜成日 2017幎01月09日  Â·  37コメント  Â·  ゜ヌス: docker/compose

こんにちは私はdocker-composev3のdepends_onの代替手段を知りたいです。リリヌスノヌトのように、v3のdepends_on機胜を移怍したす。

formav3 kinquestion

最も参考になるコメント

ヘルスチェックの䟝存関係のようなものを実珟するために、docker-compose v3で同等のものは䜕でしょうか v3でその機胜を削陀する堎合は、基本的に決しお䜿甚しないでください。少なくずも、このための移行パスが必芁です。

新しいdocker-composev2.1に導入し、v3にドロップする意図は䜕ですか 珟圚、アプリケヌション甚にさたざたな䜜成ファむルを蚭定しおいたすが、次のバヌゞョンで削陀される機胜を䜿甚したくないため、䜿甚を新しいdocker-composeファむルバヌゞョンに曎新できたせん。

党おのコメント37件

depends_onはv3にただ存圚したすが、ヘルスチェックの䟝存関係およびその結果ずしお拡匵構文は移怍されたせん。

HTH

しかし、私はdocker-compose v3を䜜成し、swarmにデプロむしようずしたしたが、コンテナヌが開始する必芁のある方法で開始されおいないため、depends_onが機胜しおいたせん。

docker-composeたたはdocker stack deployたすか

Dockerスタックデプロむを䜿甚しおいたす
そしお私はそれを7台のマシンの矀れに展開しようずしたす

ヘルスチェックの䟝存関係のようなものを実珟するために、docker-compose v3で同等のものは䜕でしょうか v3でその機胜を削陀する堎合は、基本的に決しお䜿甚しないでください。少なくずも、このための移行パスが必芁です。

新しいdocker-composev2.1に導入し、v3にドロップする意図は䜕ですか 珟圚、アプリケヌション甚にさたざたな䜜成ファむルを蚭定しおいたすが、次のバヌゞョンで削陀される機胜を䜿甚したくないため、䜿甚を新しいdocker-composeファむルバヌゞョンに曎新できたせん。

珟時点では、新しいdepends_on構文がv3に移怍される予定はないため、移怍されないず想定する必芁がありたす。

倚くの人が望んでいる答えではないこずは知っおいたすが、少なくずもある皋床明確にするのに圹立぀こずを願っおいたす。

なぜ蚈画に含たれおいないのか聞いおもいいですか そうするこずは非垞に圹立぀ず思いたす。

それは明確さを䞎えたすが、説明したせん。 その理由を詳しく説明しおいただけたすか そしお、代替案存圚する堎合に぀いおは
コンテナ内でサヌビスを凊理するのではなく、depends_onを䜿甚するず、サヌビスに䟝存する非垞に簡単な方法が埗られたす぀たり、サヌドパヌティのむメヌゞを埅機スクリプトでラップしお維持する必芁がある堎合がありたす。

@ shin-なぜ2.1でそれを実装したのですか 人々がそれを䜿甚しおそれに䟝存するようになるず、圌らは決しおアップグレヌドするこずができなくなりたす。 敬意を払っお、それはあなたたちの偎の非垞に貧匱な蚈画のようです。

では、v3でサポヌトされおいるdepends_on構文は䜕ですか https://docs.docker.com/compose/compose-file/#version -3ではdepends_onに぀いお蚀及されおいたせん。たた、docker-compose v1.10を䜿甚しおアプリケヌションをデプロむするず、v2たたはv2.1のdepends_onフレヌバヌは機胜したせん。 v3䜜成ファむルの私...

@mustafaakin

なぜ蚈画に含たれおいないのか聞いおもいいですか そうするこずは非垞に圹立぀ず思いたす。

@hsmade

その理由を詳しく説明しおいただけたすか そしお、代替案存圚する堎合に぀いおは

https://github.com/docker/docker/issues/30404#issuecomment-274825244から

depends_onは、 docker stack deployず䞀緒に䜿甚するず、䜕もしたせん。 スりォヌムモヌドのサヌビスは、倱敗するず再起動されるため、起動を遅らせる理由はありたせん。 数回倱敗しおも、最終的には回埩したす。


@brettmc

では、v3でサポヌトされおいるdepends_on構文は䜕ですか

docker-composeを䜿甚する堎合、v3でサポヌトされる構文はリスト構文です2.0で䜿甚される構文ず同様。 docker stack deployを䜿甚しおいる堎合、䟝存関係は尊重されたせん正圓化に぀いおは䞊蚘を参照しおください


バヌゞョン3圢匏は、倖郚のdocker-composeツヌルから統合されたdocker stack゜リュヌションに移行するための最初のステップです。 珟圚の実装には、取り組んでいる癖がありたす。 docker-composeでのバヌゞョン3圢匏のサポヌトは、その移行を支揎するこずを目的ずしおいたす。 fig / Composeが最初に導入されお以来、Dockerでは倚くの倉曎ず改善が行われおいたす。぀たり、以前は理にかなっおいた倚くのこずが今では時代遅れになっおいたす。 docker stackは、新しい抂念を䜿甚した新たなスタヌトであり、 volumes_fromからdepends_onたで、扱いにくい構文ず抂念の䞀郚を取り陀きたす。
これらの倉曎のいく぀かに぀いお特に懞念がある堎合は、アクティブに繰り返されおいる
Dockerサヌビスずdocker stackに移行する準備がただできおいない堎合は、v2圢匏を匕き続き䜿甚しおください。 プロゞェクトは将来のある時点で日没になるず想定するのが劥圓ですが、かなり前に発衚されたす。 その埌、コヌドは匕き続き利甚可胜でオヌプン゜ヌスになりたす。

ありがずう。 今では理にかなっおいたす。

スりォヌムモヌドのサヌビスは、倱敗するず再起動されるため、起動を遅らせる理由はありたせん。 数回倱敗しおも、最終的には回埩したす。

私芋これは良いアプロヌチではありたせん。 すべおのサヌビスが、䟝存する他のサヌビスの準備ができおいないこずを適切に怜出できるわけではありたせん。䜕床も詊行しお倱敗するため、コンテナヌが埌で停止する可胜性がありたす。 ゚ントリポむントラッパヌスクリプトを導入する必芁がありたすが、これはあたり良いこずではありたせん。 ヘルシヌチェックの䟝存関係は非垞に良かったですが、スりォヌムモヌドをサポヌトしおいたせん。

スりォヌムモヌドのサヌビスは、倱敗するず再起動されるため、起動を遅らせる理由はありたせん。 数回倱敗しおも、最終的には回埩したす。

こんにちは、みなさん
たずえば、䜜業を非垞に迅速に実行しお終了するそしお、蚭蚈䞊1回だけ実行する必芁があるサヌビスがある堎合、そのサヌビスは䜕床も䜕床も開始されるずいうこずですか

@ Marvel77デフォルトでは、はい。ただし、 deploy.restart_policyセクションを䜿甚しおその動䜜をオヌバヌラむドできたす https 

@ shin-ありがずうございたした

@mustafaakin実際、ベストプラクティスは、䟝存するサヌビスぞのフォヌルトトレラント接続を確立するこずです
ある意味で、非掚奚は良いこずです。 これらの䟿利さは私たちを怠惰にしたす。

@hsmadeしかし、ほずんどすべおのinitupstart、systemdは関係に䟝存しおいたす。 だから、怠惰なこずではなく、それが理にかなっおいるこずです。 SSHDデヌモンは、ネットワヌクデバむスの準備が敎うたで起動したせん。 所有しおいるすべおのシステムを制埡するこずはできたせん。はい、システムをフォヌルトトレラントにするこずができたす。 ただし、AがBに䟝存しおいるず仮定したす。Aの初期化には時間がかかり、決定論的ではありたせん。 では、どうすればBに再起動ポリシヌを蚘述できたすか 氞遠に再起動したすか あなたがそれを望たない堎合はどうなりたすか

これはComposeよりも倧きな問題であり、Composeはそれらを開始するだけです。 スりォヌムはそれらを実行させるものなので、スりォヌムはこの健康関係ぞの䟝存を凊理する必芁があるず思いたす。

@mustafaakinコンテナ化された環境で実行されおいるマむクロサヌビスを埓来のinitシステムず比范するこずはできないず思いたす。 それは本圓に意味がありたせん。 マむクロサヌビスの考え方は、自己完結型の最小限の゚ンティティであるずいうこずだず思いたす。 APIなどの定矩は非垞に明確です。倖界のステヌタスを想定するべきではありたせん。 はい、デヌタベヌスが必芁ですが、いいえ、デヌタベヌスがあるずは限りたせん。 私が蚀おうずしたように、あなたの䟝存関係がスタヌトアップにあるこずを知るこずはあなたの問題の䞭で最も少なく、それがなくなったずきにそれをうたく凊理するこずがより重芁であり、前者も解決するはずです。

しかし、繰り返しになりたすが、これらはこの問題に関する私の考えであり、私は間違っおいる可胜性がありたす;

ええ、それはマむクロサヌビスには意味がありたせんが、すべおがマむクロサヌビスであるわけではありたせん。私はコンテナヌでHadoopを実行したす。 Dockerはマむクロサヌビス専甚ではありたせん。 私が蚀ったように、それは私が制埡できる環境には最適ですが、私が制埡できないものでは、サヌビスの゚ントリポむントをラップする必芁がありたす。 これはhealtcheckを䜿甚したdepends_onで解決されただけで、Swarmにもあるずいいず思いたす。 継続的に再起動するこずは、怠惰な人の遞択です。

みんな、

「フォヌルトトレラント」ず「初めおの初期化」ずいう誀解があるず思いたす。
アプロヌチは最初のアプロヌチには十分に聞こえたすが、埌者は本圓に苊痛であるこずに同意したす。
私自身だけでなく、䞀般的には、サヌビスは倚かれ少なかれ盞互に䟝存しおいるため、特定の順序でサヌビスを開始する必芁があるず思いたす。

初期化フェヌズで継続的に再起動し、ある時点でサヌビスが適切な順序で開始されるのを埅぀こずは、悪倢のようなものです。さらに悪いこずが起こった堎合、起動プロセスの「ダりンタむム」を蚈画するこずはできたせん。 悪いだけでなく、䜕かを倉曎する必芁がある「メンテナンス」時間のように、さたざたなサヌビスが矀れによっお䜕床も再起動されるため、システムが実際に起動するのにかかる時間を予枬できない堎合がありたす。再び正しい順序を埅っおいたす。
私はそれが7぀のコンテナヌでどのように機胜するかを詊しお埅っおいたしたが、20分間、_swarm_はただそれを理解しおおらず、サヌビス党䜓がただダりンしおいたした。
したがっお、_初期起動_にかかる時間は実際には䞍明であるため、むンフラストラクチャ党䜓を元に戻しお埩元するのにかかる時間を述べるこずすらできたせん。
私にはばかげおいるように聞こえたす。

たれにフルダりンで発生するはずですが、そのような予枬可胜性がなければ、「本番」に入るこずができるずは思いたせん。
しかし、それでもそれが発生した堎合、私はその堎にいお、できるだけ早く埩元するように求められたす。その時点で、コンテナが_startup._䞭に再起動し続けるずいう理由だけで、コンテナがどのくらいの時間起動するかはたったくわかりたせん。

@ozlatkovこれは、ここではなく、 docker issuetrackerに実際に投皿する必芁がありたす。

@ shin-ありがずう 私はそれをdocker / dockertrackerに移動したした

https://github.com/docker/docker/issues/31333

DockerチヌムがDockerSwarmが䜿甚されおいるず想定するのは本圓に悪いこずだず思いたす。 Composeは、完党に機胜するスタンドアロンツヌルであるず想定されおいたす。

ただし、テストパむプラむンではDocker Composeを頻繁に䜿甚しおおり、そのような基本的な機胜の削陀実行可胜な代替手段を提䟛しないは、実際にナヌザヌに劇的な悪圱響を及がしおいたす。

私は珟圚、チヌムメンバヌからの非垞に醜いPRをレビュヌしおおり、この機胜に倧きく䟝存しおいるためこれに察するあらゆる皮類の回避策を考え出そうずしおいたす。これには、氞遠にCompose2.Xを䜿甚するこずも含たれたす。

Dockerは、倚くのチヌムがすでに䟝存しおいる重芁な機胜を削陀するこずで、目暙を達成するのに圹立぀はずです。

これらすべおをDockerCompose3に移怍するこずを再怜蚎しおください。

倧倉感謝いたしたす。

100回目スりォヌムサヌビスを䜿甚する予定がない堎合は、v3圢匏を䜿甚する理由はありたせん。

それは、チヌムがスタンドアロン開発ツヌルずしおcomposeを䜿甚しおいる人のために2.Xフォヌマットをサポヌトするこずを玄束しおいるこずを意味したすか

たさに私の質問Composeチヌムはv2フォヌマットを氞遠にサポヌトするこずを玄束しおいたすか

v2圢匏の廃止が予定されおいる堎合、DockerComposeで暙準化するこずはできたせん。

これにより、すべおのコンテナヌがinit containerパタヌンに匷制され、Dockerの再起動ポリシヌが削陀され、起動順序に察するハッキヌなアプロヌチが䜜成されるように感じたす。 スタックずアプリケヌションバンドルの䜜成に焊点を合わせるために、composeの> = v3がこの方向に移動するず想定する必芁がありたすか そうだずすれば、Dockerスタックで起動順序を維持する方法を教えおいただけたすか wait-for-it.shたたはdockerizeのアプロヌチはありたすか

スタックのdocker-compose.ymlに盞圓する宣蚀型は䜕ですか

こんにちはみんな、私がdocker stackを䜿甚しおdocker-composeを取り陀く぀もりなら、ベストプラクティスは䜕ですか

これは解決策のようですが、コンテナを初期化するための䞀皮のハッキヌなスクリプトを甚意するこずは、良い習慣ずは思えたせん。 そうですか

ありがずう。

@mustafaakin反察祚をありがずう ずおも参考になりたした❀

@VinceOPS 「ベストプラクティス」に぀いおはよくrestart: always䜿甚しおいるので、機胜するたで埪環したす¯\ _ツ_ /¯

@hutchicしかし、䞊蚘の䌚話で述べたように、終了日を蚭定するこずはできたせんでした。ある皮の埪環的な障害時の再起動です。

Dockerチヌムがバヌゞョン3でこの機胜を削陀し、それらの远加を拒吊するのはなぜですか

@ tianhao-au https://github.com/moby/moby/issues/31333 およびhttps://github.com/moby/moby/issues/31333#issuecomment-409143581のディスカッションを参照しお

䜜曲に぀いおは、 https //github.com/moby/moby/issues/31333#issuecomment -333265696 x-depends_on持っおいるにも提案を残したした

この機胜の倉曎は、文字通り、docker-composeを䜿甚しない理由です。 本番環境でdockerを䜿甚しおいお、開発環境甚にロヌカルでdocker-composeを䜿甚しおいる堎合、開発環境ず本番環境でDockerコンテナヌの動䜜を根本的に倉える必芁がありたす。 本番環境では、デプロむメントの正垞性ず順序を保蚌するためにオヌケストレヌションシステムに䟝存しおいたす。 開発ランドでは、オヌケストレヌションはdocker-composeによっお行われおいたした。 今、私は自分のシステムを調敎するために物事の健党性をチェックするためにたくさんの壊れたスクリプトを曞いおいたす。 私がそうする぀もりなら、Dockerを管理するためにgolangを曞いお、それで枈たせおみたせんか。 少しぶ぀かったので萜ずしたした。 ちょうど私の2p

最新のdocker-composeバヌゞョンを䜿甚しお、より将来性のあるものにしようずするず、この問題に遭遇したした。 これは悲しいです。

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