<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docker-Compose on Yossy's Notes</title><link>https://yoshihiroshu.com/tags/docker-compose/</link><description>Recent content in Docker-Compose on Yossy's Notes</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Tue, 17 Jan 2023 12:00:00 +0900</lastBuildDate><atom:link href="https://yoshihiroshu.com/tags/docker-compose/index.xml" rel="self" type="application/rss+xml"/><item><title>Dockerのdepends onについて</title><link>https://yoshihiroshu.com/blog/docker-depends-on/</link><pubDate>Tue, 17 Jan 2023 12:00:00 +0900</pubDate><guid>https://yoshihiroshu.com/blog/docker-depends-on/</guid><description>&lt;div>&lt;a id="td-block-0" class="td-offset-anchor">&lt;/a>&lt;/div>
&lt;section class="row td-box td-box--white td-box--height-auto">
&lt;div class="col">
&lt;div class="container">
&lt;h2 id="背景">背景&lt;a class="td-heading-self-link" href="#%e8%83%8c%e6%99%af" aria-label="Heading self-link">&lt;/a>&lt;/h2>&lt;p>Dockerの&lt;code>depends_on&lt;/code>について、簡単に学んだことをまとめました。&lt;/p>
&lt;h2 id="対象としている人">対象としている人&lt;a class="td-heading-self-link" href="#%e5%af%be%e8%b1%a1%e3%81%a8%e3%81%97%e3%81%a6%e3%81%84%e3%82%8b%e4%ba%ba" aria-label="Heading self-link">&lt;/a>&lt;/h2>&lt;p>Dockerについて、一通り学習したことがある人&lt;/p>
&lt;h2 id="depends_on">depends_on&lt;a class="td-heading-self-link" href="#depends_on" aria-label="Heading self-link">&lt;/a>&lt;/h2>&lt;p>サービス間の依存関係を指定できる&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-docker-compose.yaml" data-lang="docker-compose.yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">services&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">service_a&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">busybox&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">service_b&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">busybox&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># `service_b` を `service_a` に依存させる&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">depends_on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">service_a&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>service_b を service_a に依存させることができます&lt;/p>
&lt;ul>
&lt;li>docker-compose up: service_a → service_b の順に起動する&lt;/li>
&lt;li>docker-compose run: （ docker-compose up と同じ）&lt;/li>
&lt;li>docker-compose stop: service_b → service_a の順に停止する&lt;/li>
&lt;/ul>
&lt;h2 id="指定パターン">指定パターン&lt;a class="td-heading-self-link" href="#%e6%8c%87%e5%ae%9a%e3%83%91%e3%82%bf%e3%83%bc%e3%83%b3" aria-label="Heading self-link">&lt;/a>&lt;/h2>&lt;ul>
&lt;li>Short syntax （リスト）
&lt;ul>
&lt;li>依存先のサービス名を単純に記述するだけ&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-docker-compose.yaml" data-lang="docker-compose.yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">depends_on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">service_a&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Long syntax （オブジェクト）
&lt;ul>
&lt;li>依存関係にあるサービスをオブジェクト形式で記述するもの&lt;/li>
&lt;li>この方法では依存先に加えて「条件」を指定することができます&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-docker-compose.yaml" data-lang="docker-compose.yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">depends_on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">service_a&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">condition&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">service_started&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>条件の指定には condition を使用
condition にデフォルト値は無いため、 long syntax を選ぶ場合は必ず指定する必要があり&lt;/p></description></item></channel></rss>