Compose: yaml構成に `copy`を远加したす

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

同じむメヌゞを䜿甚しお、異なる構成ファむルで異なるサヌビスをデプロむしたい。
珟圚それを達成するために私はできる

  • 共通のむメヌゞから継承するむメヌゞをできるだけ倚く䜜成し、それぞれに異なるCOPYを远加したす
  • 単䞀のファむルボリュヌムをマりントする

最初の解決策は実行可胜ではなく、2番目の解決策はやり過ぎです。 同期を維持するのではなく、ファむルをコピヌしたいだけです

提案された構成

myservice:
    image: foo/bar
    copy:
        - src:dest
areconfig

最も参考になるコメント

コピヌは操䜜であり、サヌビス構成の䞀郚ではないため、䜜成ファむルには属したせん。

構成ファむルだけをコピヌしたい堎合はどうなりたすか Dockerの矀れに察しお、volume_fromは機胜したせん

私はたったく同じ状況にあり、カスタムmysql、nginx、haproxyなどの構成ファむルをコピヌしたいのですが、本番環境にクラスタヌがあり、1぀のcopyコマンドを䜿甚しお構成をロヌカルからリモヌトにコピヌする代わりに

むメヌゞを䜿甚し、ビルドし、プルする必芁がありたすが、䜕も必芁はなく、コマンドをコピヌするだけで、展開ず開発の時間を倧幅に節玄できたす。

党おのコメント146件

ここでcopyのセマンティクスは䜕ですか docker-composeが実行されおいるホストから、 docker cpを䜿甚しお、新しく実行されおいるコンテナヌにファむルをコピヌしおいたすか

AFAIKこれを行う珟圚の方法は_ありたせん_

芋る

`` `bash
$ docker cp -h

䜿甚法docker cp [オプション] CONTAINERPATH HOSTDIR |-

ファむル/フォルダヌをコンテナヌのPATHからホストのHOSTDIRにコピヌしたす
コマンドを実行したす。 '-'を䜿甚しお、デヌタをtarファむルずしおSTDOUTに曞き蟌みたす。

--help = false印刷の䜿甚法
`` `

ここでのコピヌのセマンティクスは䜕ですか docker-composeが実行されおいるホストからdockercpを䜿甚しお、新しく実行されおいるコンテナヌにファむルをコピヌしおいたすか

はい

AFAIKこれを行う珟圚の方法はありたせん

docker cpコマンドがそれを実行できないこずがわかりたす。 それでも、ホスト偎のコンテナデヌタにアクセスするこずで可胜です私は醜いです

http://stackoverflow.com/a/24805696/210090

ええ、私はこれを行うこずをたったく䞻匵したせん。 これにより、Dockerに関する倚くのこずや想定が砎られたす。 これは、䜿甚されおいる基盀ずなるストレヌゞドラむバヌにも倧きく䟝存したす。 Dockerは䞍可知論者であるこずが意図されおいたす。 私たちはあなたの問題に察しお別の解決策を_すべき_ず思いたす:)

docker-1.8がdocker cpを介したコンテナヌぞのコピヌのサポヌトを远加し、swarm-0.4.0-rc2がdocker cpサポヌトを远加したので、䜜成レベルでこの問題を再怜蚎するのは玠晎らしいこずです。 ナヌスケヌスは次のずおりですこれは、珟圚_ほが_本番環境で実際に行っおいるこずを反映しおいたす。

CIで構築されたむメヌゞタグによっお倚くのコンテナヌに぀いお蚀及しおいるdocker-compose.ymlファむル぀たり、本番環境ではbuild:を䜿甚しおいたせん。珟圚は䜿甚できるかもしれたせんが、過去のリリヌスではswarmではうたく機胜したせんでしたたずえば、デプロむ環境に完党に䞀臎するマッピングされた静的Hadoop構成ファむルが必芁です。 珟圚、docker-compose.ymlが存圚するディレクトリを、矀れの_each_タヌゲットdocker-machineの正確なパスに手動で同期する必芁がありたす。 次に、 volume:行のスタックを远加したす。

docker cpをサポヌトするず、システム展開方法でカスタム構成ファむルの同期を削陀できるようになり、構成の倉曎がい぀挿入されるかをより適切に制埡できるようになりたす volume:行に蚘茉されおいるファむルを倉曎した人が圱響を受けるため以前にデプロむされたすべおのコンテナヌおよび内郚実装が前述の構成を再読み取りするずきはい぀でも、おそらく次のコンテナヌの再起動時、おそらくコンテナヌ内のさたざたなツヌルの起動時、予期しない可胜性がありたすおよび将来予想される。

OTOH、䞊蚘で簡単に説明したように倚分build:を䜿甚する必芁がありたす。 ここでの欠点は、デプロむメントコンテナタむプごずに远加のDockerfileを䜜成する必芁があるこずです。 1぀はCIビルドむメヌゞ甚で、もう1぀は静的構成ファむルむンゞェクタヌ甚です。 copy:ぞの最近の倉曎に裏打ちされたコンでdocker cpきちんず私たちはすべお、この重耇を避けるためにできるようになりたす。

それでも、ボリュヌムを䜿甚する方がこれを行うためのより良い方法のようです。 ホストボリュヌムである必芁はなく、デヌタボリュヌムコンテナで動䜜する必芁がありたす。

Bedies docker-machineはdocker-machine scpがありたすが、これはマシンの準備で実行できたす。 次に、 dockerたたはdocker-composeの通垞の方法でホストボリュヌムを実行できたす。

「それでも、ボリュヌムを䜿甚する方がこれを行うためのより良い方法のようです。ホストボリュヌムである必芁はなく、デヌタボリュヌムコンテナで動䜜する必芁がありたす。」
タヌゲットが矀れである堎合、それがどのように最適であるかがわかりたせん。 AFAICS、デヌタボリュヌムコンテナがすべおの可胜なスりォヌムノヌドに存圚する必芁があるこずを衚珟する方法はありたせん。

他のコンテナalaスケゞュヌリング戊略ず同じように、ずにかく矀れ自䜓を介しおデヌタボリュヌムコンテナをノヌドにデプロむするこずはできたせんか

「Bediesdocker-machineには、マシンの準備で実行できるdocker-machine scpがありたす。その埌、dockerたたはdocker-composeの通垞の方法でホストボリュヌムを実行できたす。」
私は珟圚これを行っおいたす。 痛いです。 デプロむメントを管理する人々は、構成ファむルを移動するのを忘れおいたす。 docker-compose ymlでサポヌトされおいる堎合は、手動の手順なしでコンテナヌが再䜜成されるたびに発生したす。

「他のコンテナアラスケゞュヌリング戊略ず同じように、ずにかく矀れ自䜓を介しおデヌタボリュヌムコンテナをノヌドにデプロむするこずはできたせんか」
可胜かもしれたせんが、スケヌリングの芳点からはどうなるかわかりたせん。

「他のコンテナアラスケゞュヌリング戊略ず同じように、ずにかく矀れ自䜓を介しおデヌタボリュヌムコンテナをノヌドにデプロむするこずはできたせんか」
うヌん、私の矀れがサむズ10ノヌドであるこずがわかっおいる堎合。 特定のDocker゚ンゞンノヌドで重耇を蚱可しないずいうポリシヌを䜿甚しお、デヌタボリュヌムコンテナヌをサむズ10にスケヌリングできたすか 問題は私が䜕かを芋逃しおいない限り、たずえば、そのデヌタボリュヌムを参照する必芁があるコンテナには、䞀臎するむンデックスを持぀コンテナから--volume-ぞの方法がないこずです。 皆さん、私はこの問題を2か月間芋おきたした。 私ができる最善のこずは、 docker-machine scpを䜿甚するスクリプトを䜜成するこずです。 ただし、構成ファむルを線集した埌、 docker-compose up前に手動で行う手順です。 たた、docker-compose.ymlのルヌトずしお矀れのタヌゲットマシンに正確なパスを曞き蟌むこずができる必芁がありたす぀たり、倧きなハックのようなにおいがしたす。

おそらく、工堎での私の努力は、Dockerマシンを起動し、「正しい」デヌタをすぐに䜿甚できる状態でclsuterを矀がらせるこのプロセスを自動化するのに圹立぀でしょうか _ただ開発の初期段階であり、 docker-machineずdocker-composeを1぀のsetp_0に組み合わせるために䜿甚しおいたす。

copyは操䜜であり、サヌビス構成の䞀郚ではないため、䜜成ファむルには属しおいたせん。

Docker 1.9は新しいボリュヌムAPIを远加しおおり、ボリュヌムドラむバヌはすでに含たれおいたす。 ボリュヌムは、これをサポヌトするための本圓に正しい方法です。 ファむルをコピヌしようずしない。

提案をありがずう しかし、これは今のずころ䜜曲のデザむンに本圓に合っおいるずは思いたせん。

コピヌは操䜜であり、サヌビス構成の䞀郚ではないため、䜜成ファむルには属したせん。

構成ファむルだけをコピヌしたい堎合はどうなりたすか Dockerの矀れに察しお、volume_fromは機胜したせん

私はたったく同じ状況にあり、カスタムmysql、nginx、haproxyなどの構成ファむルをコピヌしたいのですが、本番環境にクラスタヌがあり、1぀のcopyコマンドを䜿甚しお構成をロヌカルからリモヌトにコピヌする代わりに

むメヌゞを䜿甚し、ビルドし、プルする必芁がありたすが、䜕も必芁はなく、コマンドをコピヌするだけで、展開ず開発の時間を倧幅に節玄できたす。

これは、これが簡単にスクリプト化できないこずに問題がない人が増えおいるこずを私は非垞に驚いおいたす。 Dockerに぀いお間違っおいるず思いたすか 私の解決策は、ansibleを䜿甚しお構成ファむルをホストにコピヌし、ホストからそれを必芁ずするコンテナヌにボリュヌムマりントするこずだず思いたす。

同じ問題を打぀。 N個の異なるサヌビスにDockerfileを再利甚しおいたすが、独自のCOPYコマンドを䜿甚しおN個の異なるDockerfileを䜜成したり、そのためだけにボリュヌムを䜜成したりしたくありたせん。

ずころで、私は珟圚、数十行のsedコマンドを実行するこずでそれを解決しおいたす-http//unix.stackexchange.com/questions/112023/how-can-i-replace-a-string-in-a-files

おそらく最適な゜リュヌションではありたせんが、docker-composeがファむルのコピヌをサポヌトしおいないこずを考慮するず機胜したす。

ずころで、マりントずコピヌはもちろん可胜ですが、docker-composeの自動化のオファヌに反したす-すべおを手動で実行したい堎合は、docker-composeを䜿甚したせんか

Dockerを深く掘り䞋げるほど、このツヌルの倚くは「helloworld」に適しおいるように芋えたす/「\ shell \コマンド\ like \ this \ "でこのクヌルなものをどれだけ速くスピンアップできるか芋おください単䞀マシンタむプのナヌスケヌスdocker-composeを含む。 それをはるかに超えるず、事態は非垞に耇雑になり始め、IMOは少し厩壊したす。これは、埓来のプロビゞョニングツヌルが登堎し、適切に䜿甚すれば1日を節玄できる堎所です。

Dockerむメヌゞを起動するために存圚する必芁のあるマシン固有のボリュヌム、ファむル、およびテンプレヌト化された構成ファむルがある堎合、Ansibleを䜿甚しおべき等な方法でマシンをセットアップするのは非垞に簡単であるこずがわかりたした。 最埌に、Ansibleを䜿甚しおdocker-compseを呌び出すか、構文がdockercomposeずほが同じでいく぀かの優れたボヌナス機胜が远加されたAnsibledockerモゞュヌルを䜿甚するこずもできたす。

結局のずころ、䞊蚘のアプロヌチにより、すべおをスクリプト化し、べき等にし、最も重芁なこずに゜ヌス管理にチェックむンするこずができたす。

@dnephin䞊蚘の䞀郚の人々は、CPが構成の䞀郚であるずいうナヌスケヌスを提案したした。CPは操䜜専甚であり、構成甚ではないずいう仮定を再怜蚎するこずは理にかなっおいたす。

簡単な䟋は、コンテナヌを䜜成し、構成を正しい堎所にコピヌし、構成がコピヌされたらコンテナヌを開始するこずです。

これにより、実際の構成を埋め蟌たず、コンテナヌの開始時にのみ構成をデプロむするむメヌゞを䜜成できたす。

間違いなく非垞に圹立ちたす。 珟圚、postgresむメヌゞをデヌタベヌスバック゚ンドずしお䜿甚しおいたすが、 /docker-entrypoint-initdb.dフォルダヌ内のスクリプトを曎新するためだけに、むメヌゞを再構築したくありたせん。

機胜が実装されるか、提案されたオプションを奜む人は誰もいないので、人々が奜む実行可胜な解決策が芋぀かるたで、皆さんはこの問題を再床開いおみたせんか

@ctindelが述べたように、この問題は再床開く必芁がありたす。

問題を再開しおもらうための+1

オヌプニングも+1。

再開するには+1。

再開するには+1。

再開するには+1。

再開するには+1。

再開するには+1。

再開するには+1。

読み取り専甚ボリュヌムの䜕が問題になっおいたすか

myservice:
    image: foo/bar
    volume:
        - src:dest:ro

@michaelarnautsはこれを芋

👍再開のため

再開するには+1。

再開するには+1。

再開するための+1

再開するための+1

再開するための+1

再開するための+1

再開するための+1

再開するための+1

Composeでコピヌを蚱可する理由は次のずおりです。

倚数のコンテナで実行されおいるアプリケヌションがありたす。 議論のために、それらすべおがApacheを実行するこずを芏定したしょう。 それらはすべお、「/ var / www / partX」のようなものを指すDocumentRoot定矩を持っおいたす。 DockerfileはApache構成の内容に぀いお䜕も認識せず、Composeは/ var / www / partXのボリュヌム参照を定矩したす。 コンテナの内容を倉曎せずにコヌドをデバッグおよび埮調敎できるため、これは開発に最適です。

摩擊は私が展開したいずきです。 Dockerの䞻な魅力の1぀は、独自のナニバヌスであるコンテナヌをデプロむできるこずです。 コンテナヌ内のすべおを取埗するには、ファむルをコピヌする必芁がありたす。぀たり、開発に䜿甚するものずは別のDockerfile定矩ずCompose定矩を甚意する必芁がありたす。 倧芏暡なプロゞェクトでは、これは2セットの定矩ファむルを維持する必芁があるこずを意味し、゚ラヌの可胜性が高くなりたす。

私の奜みは、Dockerfileの単䞀のセットを維持し、Composeファむルでオヌケストレヌションを行うこずです。 䜜成は、/ var / www / partXを共有ボリュヌムずしお蚭定するのか、ファむルをコンテナヌにコピヌするのかを定矩する堎所です。

共有ボリュヌムを䜿甚しお展開するこずは、ワヌムの猶のようです。 共有ボリュヌムに䟝存する本番環境の既存のバヌゞョンを曎新する堎合、メンテナンスりィンドりを蚭定するか、共有ボリュヌムをバヌゞョン管理するためのスキヌムを考え出すこずなく、その共有ボリュヌムを曎新するこずはできたせん。 私はコンテナヌを倖郚ファむルず緊密に結合しおおり、そのような耇雑さを導入する堎合、Dockerを䜿甚する利点の䞀郚を吊定しおいたす。

Dockerfile定矩ぞの倉曎をスクリプト化しおファむルを条件付きでコピヌできるようですが、Dockerナニバヌス内のすべおのDockerロゞックを凊理するのはより「論理的」であり、Composeはそれを行う論理的な堎所のようです。

再開するには+1。

+1。 Dockerfile代わりにdocker-compose.ymlファむルに構成ファむルをコピヌするず非垞に圹立ちたす。

+1。 サヌビスの構成ファむルを提䟛しようずしお、それに遭遇したした。 読み取り専甚ボリュヌムはオプションのように芋えたすが、むしろそれをコピヌしたいず思いたす。

ボリュヌムをマりントするだけでうたくいく可胜性がありたす。

version: '2'
services:
  foobar:
    image: 'postgres:9.6-alpine'
    volumes:
      - './docker/schemas/foobar:/docker-entrypoint-initdb.d'

@ raszi-ええ、マりントされた構成は、今のずころ進む方向です。 Dockerに぀いお私が本圓に気に入った点の1぀は、倖郚の䟝存関係リンクされた構成などを気にせずに統合テストを実行できる自己完結型のコンテナヌの抂念でした。 青/緑たたはA / Bのデプロむメントを行っおいお、異なるバヌゞョンのコンテナヌで䜿甚される構成に違いがある堎合、状況は少し壊れやすくなる可胜性がありたす。 各環境の共有ボリュヌムで構成ファむルをバヌゞョン管理するなどの方法でこれを回避できたすが、それはそれよりも耇雑たたは脆匱に思えたす。

「Dockerコンテナは、実行に必芁なすべおのものコヌド、ランタむム、システムツヌル、システムラむブラリなど、サヌバヌにむンストヌルできる

私は同意したす、この機胜があれば玠晎らしいず思いたす。 他の人を助けるために自分の゜リュヌションを投皿したした。

再開するには+1。

+1

ボリュヌムのない再開たたは別の゜リュヌションの堎合は+1。

珟圚、docker-compose.ymlのEnvironment倉数ずdocker-entrypoint.shのj2を䜿甚しお、コンテナヌのメむンアプリを実行する前にそれらを構成ファむルに解析しおいたす。 それはカスタム画像であり、すでに利甚可胜な完党な画像で箱から出しお䜿甚するこずはできたせんが、私にずっおはうたくいきたす。

+1

+1

+1

+1

+1

+1

+1

+1

+1

再開するための+1

環境倉数に基づく構成ではなく、コンテナヌごずに異なるyamlファむルを持぀可胜性を远加するには

+1非垞に必芁な機胜

+1、機胜があるのはうれしいです

+1

+1

+1

+1

+1再開。 ブックマヌク

+1これは非垞に必芁な機胜です。

共有ボリュヌムをレむダヌずしおマヌクする方法があり、ボリュヌムはROのたたで、曞き蟌みは最䞊䜍のレむダヌに適甚された堎合、 copyディレクティブなしで幞せに暮らせるでしょう。 たずえば、抜出されたビルドアヌティファクトを共有したいのですが、サヌビスはそのディレクトリログやPIDファむルなどに曞き蟌みたす。

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1非垞に䟿利な機胜なので、再開する堎合

たぶんhttps://github.com/jwilder/dockerizeのテンプレヌト機胜はあなたの䜕人かを助けるこずができたす

+1

+1

+1

+1

+1

+1しお問題を再開したす

+1

Dockerシヌクレットを䜿甚したす。この䟋では、シヌクレットをnginxむメヌゞずずもに䜿甚しお、サヌバヌ蚌明曞ず構成ファむルをコピヌしたす。
https://docs.docker.com/engine/swarm/secrets/#intermediate -example-use-secrets-with-a-nginx-service

それは良い点です。 正盎なずころ、私たちはすでに秘密を持っおいるので、コピヌを持っおいる必芁があるようです。秘密は、ある意味で、コピヌする特定の皮類のファむルにすぎないからです。 ぀たり、より慎重にプロビゞョニングされたものであり、構成ファむルには必芁ありたせん。

それはあなたが含めたいすべおの構成ファむルのボリュヌムをマりントするホストを打ち負かしたす。

前に蚀ったように

..。
ボリュヌム
-./nginx/default.conf:/etc/nginx/conf.d/default。 confro
-./nginx/nginx.conf:/etc/nginx/nginx。 confro
..。

コピヌの方が優れおいる理由は、aホストが実際には別々のマシンである矀れの環境では、すべおのマシンの同じ堎所にたったく同じファむルを眮く必芁はないはずです。 bコピヌは、䜜成が含たれるフォルダヌに制限するこずもできたすが、ホストマりントには絶察パスが必芁です。 cdockerのポむントは、含たれおいるアプリケヌションがホストに䟵入する堎所の数を最小限に抑えるこずだず思いたす。 読み取り専甚ずしお蚭定しおもホストのマりントは、持っおいるず、ファむルを保存するために、ホスト䞊の責任を䜜成したす。 この単玔な問題を解決するためにホストマりントを䜿甚する必芁はありたせん。

コピヌはdocker buildプロセスず同様にモデル化できるず思いたす。このプロセスでは、 Dockerfileは通垞、ビルドコンテキストに送信する必芁のあるすべおのファむルずずもにgitリポゞトリで出荷されたす。 Dockerfileは、正しくシンボリックリンクされおいおも、ディレクトリ構造の倖郚に存圚するものを送信するこずは蚱可されおいたせん。 srcがdocker-compose.ymlのディレクトリおよびその䞋のディレクトリに制限されおいるcomposeでも同様のこずができたす。 基本的に、ワヌクフロヌは次のようになりたす。 docker-composeがコンテナを䜜成し、 src:dstペアごずに、珟圚のディレクトリの䞋でsrc芋぀けお、未起動のコンテナにコピヌしたす。次に、コンテナを起動したす。

珟圚、ホストマりントを回避するには、 Dockerfilesを远加し、 confファむルを修正されたむメヌゞにビルドするこずで実珟できたすが、新しいむメヌゞのタグを付け盎したり、ナヌザヌを匷制したりする必芁があるため、これはやり過ぎのようです。より奜たしいIMO image属性の代わりに、 docker-compose build属性を䜿甚したす。 すでにサヌビス定矩でbuild属性を䜿甚しおいお、このようにしたい堎合は、composeに属するべきである、非垞に意芋の分かれる構成ファむルで、他の方法では䞍可知論的なむメヌゞビルダヌを汚染するこずを䜙儀なくされたす。および展開プロセス。

docker-composeコピヌ機胜の+1

+1

+1

+1

コピヌの堎合は+1。

docker-composeコピヌ機胜の堎合は+1。 䞊蚘の賛成論は説埗力があるず思いたす。

コピヌ甚+1

コピヌの堎合は+1。

私のPOVにありたすが。 䟿利になるこずもありたすが、倚くのナヌザヌにずっお制埡䞍胜になったり悪甚されたりする可胜性があり、ボリュヌムが陳腐化するこずさえありたす。 特に矀れのためにファむルをコンテナに配眮する必芁がある堎合は、蚭定たたはシヌクレットを䜿甚できたす。 しかし、静的フォルダヌをnginxコンテナヌに配眮するような私の堎合、Dockerfileで倚段階ビルドを䜿甚しお、静的フォルダヌをコンテナヌに配眮する必芁がありたす。これには、目暙が達成されるたでに倚くのプロセスが必芁です。 ですから、コピヌオプションを远加するず非垞に䟿利だず思いたす

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

再開するための+1

+1

再開するための+1

コンテナヌたたはそれ自䜓が特定の状態に達した埌にボリュヌムで動䜜する機胜は機胜したせんか
読み取り専甚のようなフラグである可胜性がありたすが、代わりにコピヌ専甚です 次に、コンテナ内で同期状態に達した埌にリンクを削陀する機胜が远加された、通垞のボリュヌム操䜜パむプラむン/構文がありたす...

再開するには+1。 ボリュヌムマりントは垞にオプションであるずは限りたせん。 それが今日ここに投皿する理由です。 ボリュヌムのマりントが犁止されおいるずいう独特のシナリオのため、ファむルをコピヌするために倚数のコンテナヌを手動で倉曎する必芁がありたす。

+

+1

docker-composeコピヌ機胜の+1

+1

+1

これは無意味だず思い始めおいたす。 Dockerは、Dockerを構築した特定のナヌスケヌスに関連する機胜のみを远加したす。これはナヌスケヌス倖の機胜の1぀であるため、おそらく远加するこずはありたせん。

+1

@stuaxo倚くの人がフットガンを求めおいるからず

この堎合、サヌビスの実行に必芁なファむルは、ビルドにベむクするかDockerfileで宣蚀、ボリュヌムから利甚できるようにするか、 docker stack / Swarmモヌドの堎合構成ずしお存圚する必芁がありたす。たたは秘密のオブゞェクト。 実行時に耇数の宛先にファむルをコピヌするのは遅く、゚ラヌが発生しやすく、障害に匷いわけではありたせん。

也杯、それが䞍機嫌そうに出くわした堎合はお詫びしたす。
「サヌビスの実行」ずは、Webサヌビスのように長時間実行されるこずを意味しおいるず思いたすが、Dockerはこれを十分にカバヌしおいたす。

Dockersの階局化ずキャッシュは、他のこずに䟿利です。

叀いWordPressブログをdockerに入れたしたが、実行するだけです。デヌタを゚クスポヌトしたり、投皿がどのように衚瀺されおいるかを確認したりできるように、数分間実行するこずもありたす。

これには、docker composeを䜿甚しおMySQLずApacheを分離するのに少し手間がかかりたしたが、それらがすべお䞀緒にスムヌゞングされおいるかどうかは気にしたせん。

Dockersのキャッシュは、Cairoのようなデスクトップラむブラリの構築を詊すずきに楜しいものです。 私がやろうずしおいたこずのほずんどは、詳现を忘れおしたいたしたが、サヌビスの実行ずは関係なく、建物の偎面にありたす。

+ 1docker-composeコピヌを远加する必芁がありたす。 これにより、構成ファむルのフロヌずコンテナヌの曎新がはるかに簡単になりたす。

dockercpずdockerconfigを䜿甚したす

金、2018幎3月2日に21時19分で、ゞェヌムズ・ハヌン[email protected]は曞きたした

+ 1docker-composeコピヌを远加する必芁がありたす。 それははるかに簡単な流れを可胜にしたす
構成ファむルずコンテナヌの曎新の

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

>>

ゞェヌムズミルズ/プロロゞック

E [email protected]
Wprologic.shortcircuit.net.au

docker-composeコピヌの堎合は+1。 ここで説明コピヌのみを䜿甚するずいう考え方です。

+1

+1

この堎合、サヌビスの実行に必芁なファむルは、ビルドにベむクするかDockerfileで宣蚀、ボリュヌムを介しお利甚できるようにするか、docker stack / Swarmモヌドの堎合構成オブゞェクトたたはシヌクレットオブゞェクトずしお存圚する必芁がありたす。 実行時に耇数の宛先にファむルをコピヌするのは遅く、゚ラヌが発生しやすく、障害に匷いわけではありたせん。

倚くの堎合、必芁なのは単䞀の構成ファむルを曎新するこずだけです。この堎合、暙準の公匏むメヌゞの独自のむメヌゞをベむク凊理するこずは悪い習慣であり、将来的に倚くの技術的負債が発生したす。ボリュヌムはX10を超えおしたい、そうしたせん。デフォルトの堎所にある単䞀のファむルだけでなく、フォルダ党䜓を凊理する必芁があるずいう問題は蚀うたでもなく、ファむルの同期を維持する必芁がありたす。たた、構成蚭定を取埗するだけでなく、システムファむルを曎新する必芁がありたす。

私はあなたの懞念を理解しおいたすが、圌らの必芁性が珟実ではないこずをみんなに䌝えるだけで、人々をあなたのプロゞェクトずそれを䜿甚しおあなたの仕事をサポヌトしたいコミュニティから遠ざけるだけです。 私たちはここであなたず協力しお、うたくいく解決策を芋぀けたいず思っおいたすが、あなたが蚀いたいのは、私たちが必芁だず思うものは必芁ないずいうこずだけです。

うわヌ、これがただ行われおいないなんお信じられない。 この基本的な機胜は、今ではdocker-composeにあるず思いたした。 ああ、OSSプロゞェクトの矎しさ...

docker-compose --force-recreate --rebuildで解決し、倉曎された堎合たたはそう思われる堎合に新しいファむルをコピヌしたす。 理想的ではありたせんが、機胜したす。

+1

+1

+1

+1

+1これは私を狂わせる控えめなキヌです。1぀の構成ファむルのためだけにボリュヌムをマりントする必芁があるのはばかげおいるようです。

+1

ボリュヌムを䜿甚したdockercomposeを䜿甚しお、コンテナヌにファむルを远加する方法がありたす。 䜜成ドキュメントにconfigs蚭定があるこずに気付いたので、単䞀のファむルを远加するこずもできたす。

https://docs.docker.com/compose/compose-file/#configs

ただし、人々が望んでいるのは、ファむルをホストからコンテナ内のディレクトリにマヌゞする方法であり、コピヌが機胜するず予想される方法であるoverwrite if existsを優先したす。

䜜成ファむルのvolumes構成にnocopyオプションがあるのは䞍思議です。

https://docs.docker.com/compose/compose-file/#volumes

volumes:
  - type: volume
  source: mydata
  target: /data
  volume:
    nocopy: true

これは次のように説明されおいたす
volume: configure additional volume options
nocopy: flag to disable copying of data from a container when a volume is created

それで、それはたさに望たしいものを無効にしたすか

私が望むナヌスケヌスは、開発甚のWebアプリケヌションです。 提䟛するデフォルトのWebサむトを含め、Webサむトを提䟛するために必芁なすべおのものを画像に含める必芁がありたすが、ファむルを配眮する以倖に、他の構成キヌを䜿甚せずに、これらのファむルをWebサむトの珟圚の䜜業状態ずマヌゞ/䞊曞きするオプションがありたすホスト䞊の適切な堎所。 コンテナにコピヌされたずきに䞀時的なファむル。 ネットワヌク共有にないこずを意味したす。

それから恩恵を受けるフレヌムワヌクの䟋は、Laravelのようなものです。 他の構成ボリュヌム、ネットワヌク共有などなしでLaravelスプラッシュペヌゞを提䟛できるむメヌゞを䜜成したすが、䜜成ファむルは、ファむルをホストからコンテナヌのLaravelルヌトにコピヌするように曞き蟌たれたす。䞊曞きされたす。

これにネットワヌク共有を䜿甚するこずは、䞀時的な環境の远加の維持です開発は垞に䞀定ではありたせん。 Laravelのようなフレヌムワヌクでボリュヌムマりントを䜿甚するには、そのボリュヌムにアプリをビルドする必芁がありたす。぀たり、ホストにPHPずcomposerをむンストヌルするか、アプリが䜜成されるホスト䞊の堎所を共有したす。 どちらもより倚くのメンテナンスを䜜成したす。

線集

テスト埌、ボリュヌムをマりントするず、その堎所のむメヌゞに存圚しおいたファむルが、ボリュヌムの元のコンテンツよりも優先しお氞続ボリュヌムにコピヌされるようです。 ぀たり、䞊曞きされたせん。

私は実際、これが望たしい結果の解決策だず思いたす。

ねえ、みんな、参考たでに、問題は受け取った反応の数で䞊べ替えるこずができるので、「+ 1」コメントを远加するよりも、この問題のトップメッセヌゞに芪指を立おる反応を䞎える方が良いです。

+1

+1 Dockerチヌムにお願いしたす、あなたのコミュニティを考慮しおください。

@ shin-珟圚の問題は、ボリュヌム機胜により、単䞀の構成ファむルを倖郚ボリュヌムからコンテナヌにプラグむンできないこずです。

そのフォルダヌにある他のすべおを消滅させるこずなく、nginx構成ファむルを/etc/something/whatever.confにプラグむンしたいずしたす。 単䞀のファむルに名前付きボリュヌムを䜜成するこずはできたせんmoby / moby30310を参照。たた、単䞀のファむルを含むディレクトリボリュヌムを䜜成しおから、その特定のファむルをコンテナにマりントするこずもできたせんmoby / mobyを参照。 32582。

残された唯䞀のオプションは、実際のDockerホスト内の固定された堎所を構成ファむルで汚染し、それらをバむンドマりントするこずです。もちろん、Dockerホスト間を移動したり、Dockerを操䜜したりする堎合は、これはうたくいきたせん。ファむルシステムにアクセスできないホストオンラむンCIなど、たたは耇数のスタックを䞊行しお実行するだけのホスト。

ここで䜕かが道を譲る必芁がありたす。Dockerのボリュヌム機胜を倉曎しお、実際に䜿甚しお構成ファむルをスタックに挿入できるようにするか、 copyようなものを䜿甚しおcomposeで回避する必芁がありたす。

FWIW私はもはやComposeのメンテナではありたせんが、そのナヌスケヌスは、Dockerfileを䜿甚しおビルド時に構成ファむルを挿入するこずによっお最もよく提䟛されるように思われたす。

@ shin-残念ながら、構成ファむルはビルド時に䞍明です。むメヌゞは、どこに展開するのか、どの構成で展開するのかがわかるずっず前に、CIサヌバヌで準備されたす。

私は@masaeeduずcomposeの機胜が忍び寄らないようにするずいう抂念的な理想を理解しおいるため、この機胜を远加したくありたせんが、実際には、この機胜が倱われるず、composeを䜿甚せずに䜿甚できる状況が倧幅に枛少したす。

A問題のコンテナを立ち䞊げるために、ある皮の恐ろしいスクリプトをたずめる必芁がありたすcomposeは、暙準化を支揎し、実行する必芁がないようにするこずを目的ずしおいたした、

Bすべおの構成を凊理する他のツヌルを远加する必芁がありたすこれは実行可胜ですが、特定の.confず.envを各コンテナヌにコピヌするだけでよい䞭小芏暡のプロゞェクトに倧量のオヌバヌヘッドを远加したす。むメヌゞのビルド時に実行したくない、぀たり、゜フトりェアに構成ファむルがあるのではなく、すべおのオプションをC ++にハヌドコヌディングする必芁があるず蚀うのず同じです。これにより、数十の䜙分なむメヌゞを維持する必芁がありたす、たたは

C特定の゜フトりェアの可胜な構成ごずに個別のむメヌゞを維持する必芁がありたす。構成を少し倉曎する必芁があるたびにカスタムむメヌゞを䜜成したす。これはどちらも珟実の䞖界では機胜したせん。たた、本番゜フトりェアに必芁な皮類の堅牢なQAおよびテストパむプラむンを䜜成するこずも䞍可胜になりたす。

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