<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Docker on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/docker/</link>
		<description>Recent content in Docker on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Thu, 14 Oct 2021 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/docker/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>scaffoldy - よくあるwebサービス構成の Docker Compose ファイルを作ってくれるジェネレータ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/</link>
				<pubDate>Thu, 14 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.scaffoldy.io/&#34;&gt;Scaffoldy&lt;/a&gt; は、選択したサービスを組み合わせた webサービスの Docker Compose 設定ファイルを作ってくれるwebサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-top.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-top_hu_67eaba97f5bb1b97.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-top_hu_5b895665ba4d2bda.webp 501w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-top.png&#34; width=&#34;501&#34; height=&#34;338&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-node-js.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-node-js_hu_ba641f6e32a54749.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-node-js_hu_6b7f010a1385da64.webp 725w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-node-js.png&#34; width=&#34;725&#34; height=&#34;457&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;対話式のフォームに回答していくだけで、docker compose で動作する yml ファイルが作られます。現在選べるのは以下のような項目&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;言語/環境 - Python / Node.js / その他&lt;/li&gt;&#xA;&lt;li&gt;.gitignore 等 git の設定&lt;/li&gt;&#xA;&lt;li&gt;データベース - MySQL / MariaDB / PostgreSQL / MongoDB&lt;/li&gt;&#xA;&lt;li&gt;データベース管理web UI - phpMyAdmin / pgAdmin / Mongo Express&lt;/li&gt;&#xA;&lt;li&gt;キャッシュサーバ - Memcached / Redis&lt;/li&gt;&#xA;&lt;li&gt;メッセージング - RabbitMQ / NATS&lt;/li&gt;&#xA;&lt;li&gt;メトリクス - Prometheus / Grafana&lt;/li&gt;&#xA;&lt;li&gt;その他 - Clickhouse / ElasticSearch / Mailhog&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql_hu_a6ac2b16557cf69e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql_hu_b1bc3f3f93618a4b.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql_hu_6c231f33825e0737.webp 770w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql.png&#34; width=&#34;770&#34; height=&#34;821&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>docker/surprise - Docker誕生日</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/docker-surprise-birthday/</link>
				<pubDate>Mon, 01 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/docker-surprise-birthday/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://hub.docker.com/r/docker/surprise&#34;&gt;docker/surprise&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;docker run -it -rm docker/surprise&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2019/04/docker-birthday.mp4&#34;&gt;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2019/04/docker-birthday.mp4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Docker6周年記念イメージだそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/docker/birthday&#34;&gt;ソースコードはこちら&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>dockerizeコマンドで他のDockerコンテナの立ち上げを待つ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2017/12/let-dockerize-command-wait-other-container/</link>
				<pubDate>Fri, 01 Dec 2017 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2017/12/let-dockerize-command-wait-other-container/</guid>
				<description>&lt;p&gt;「Docker で動くようにすること」(to dockerize)じゃない、ツールの方の &lt;a href=&#34;https://github.com/jwilder/dockerize&#34;&gt;dockerize&lt;/a&gt; (jwilder さん作)を使って、同じDocker network 内(setup_remote_docker したもの)に立ち上げ中のコンテナの準備ができるのを待たせる方法。&lt;/p&gt;&#xA;&lt;p&gt;# 名前が紛らわしいのは検索性を低めてると思いますが&lt;/p&gt;&#xA;&lt;p&gt;どうせならツールも自力でセットアップせずに &lt;a href=&#34;https://hub.docker.com/r/jwilder/dockerize/&#34;&gt;docker hub にあるもの&lt;/a&gt;を呼べばよいということで、&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run jwilder/dockerize -wait http://sample.test/ -timeout 3m -wait-retry-interval 5s&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上は、http://sample.test/ が応答を返すまで、最大3分間、5秒おきに問い合わせ。&lt;/p&gt;&#xA;&lt;p&gt;CircleCI の中で待ちたかった(コンテナの立ち上げが終わってからテストを流す)ので、ターゲットのコンテナと同じ Docker network でこれを呼ぶと、.circleci/config.yml は&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- steps: (中略) - run: name: Run Docker Containers command: docker-compose up -d - run: name: Wait until the target docker container fully set up command: | docker run --network my_network \\ jwilder/dockerize -wait http://my_service/about/ -timeout 3m -wait-retry-interval 5s - run: name: テストとか&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;こんな感じでいけました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Docker&#43;Traefikで同一ホストのサブフォルダとルートフォルダで別バックエンドを見に行かせる</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2017/11/docker-traefik-dispatch-root-to-subfolder/</link>
				<pubDate>Fri, 24 Nov 2017 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2017/11/docker-traefik-dispatch-root-to-subfolder/</guid>
				<description>&lt;p&gt;Traefik をリバースプロキシにしてアクセスをバックエンドの Docker コンテナに振り分ける実験をしていたのですが、http://example.com/app1 と &lt;a href=&#34;http://example.com/app2&#34;&gt;http://example.com/app2&lt;/a&gt; をコンテナ app1 と app2 に振り分けることは無事できたものの、http://example.com/ へのアクセスがどちらにもいかず404になってしまいました。&lt;/p&gt;&#xA;&lt;p&gt;docker-compose.yml の label で &lt;a href=&#34;https://docs.traefik.io/configuration/backends/docker/&#34;&gt;Traefik の動作指定&lt;/a&gt;をしていたのですが、どちらかの app に / を含めてしまうと、/ を書いた方の定義が優先されてしまい、もう一方のサブフォルダが振り分けされなくなってしまいました。&lt;/p&gt;&#xA;&lt;p&gt;では、/ を含む方の定義に2つの条件を書けばいいのでは、と思いましたが、一行の中にセミコロンで複数条件を書くのは、それらの AND を表していて、OR にはなりません。それでは、と、二つの条件を2行に並べて書くと、後で書いた方だけが有効になるよう。&lt;/p&gt;&#xA;&lt;p&gt;公式の github project を検索すると、ラベルにサービス名をつけることで複数の条件を OR で指定できるようです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/containous/traefik/pull/1257/commits&#34;&gt;Allow multiple rules from docker labels containers with traefik.&lt;servicename&gt;.* properties by benoitf · Pull Request #1257 · containous/traefik&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;この修正が今年の3月で、version 1.3.0 に入っている。ということは使えるということ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>マジック・ザ・GIFニング - 面白動画を載せたMtGのカードを生成するプログラム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2017/10/magic-the-gifening-generate-mtg-card-with-funny-gif/</link>
				<pubDate>Fri, 13 Oct 2017 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2017/10/magic-the-gifening-generate-mtg-card-with-funny-gif/</guid>
				<description>&lt;p&gt;カードゲーム「&lt;a href=&#34;http://mtg-jp.com/&#34;&gt;マジック・ザ・ギャザリング(MtG)&lt;/a&gt;」のデータを使ったネタプログラミングが Hacker News で話題となっていました。&lt;/p&gt;&#xA;&lt;p&gt;Pythonで書かれ、&lt;a href=&#34;https://github.com/minimaxir/magic-the-gifening&#34;&gt;GitHubで公開されている&lt;/a&gt;このツールは、MtGのカードのタイトルに合った内容のアニメーションGIFを埋め込んで、MtGのパロディカードを生成するというプログラム。&lt;/p&gt;&#xA;&lt;p&gt;生成したカードを定期的にツイッターにつぶやく bot 機能も持っていて、&lt;a href=&#34;https://twitter.com/MTGIFening&#34;&gt;作者自身によるデモアカウント@MTGIFening&lt;/a&gt; では、6時間おきに一枚、新作カードが自動投稿されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://mtgwiki.com/wiki/%E5%BD%BC%E6%96%B9%E3%81%8B%E3%82%89%E3%81%AE%E9%9B%84%E5%8F%AB%E3%81%B3/Howl_from_Beyond&#34;&gt;ハウル・フロム・ビヨンド(彼方からの雄叫び)&lt;/a&gt;というカード名から生成されたのが、こちらのカード&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;zxx&#34; dir=&#34;ltr&#34;&gt;&lt;a href=&#34;https://t.co/sxqKUYHmfv&#34;&gt;pic.twitter.com/sxqKUYHmfv&lt;/a&gt;&lt;/p&gt;&amp;mdash; Magic: The GIFening (@MTGIFening) &lt;a href=&#34;https://x.com/MTGIFening/status/913993793052880897?ref_src=twsrc%5Etfw&#34;&gt;September 30, 2017&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;p&gt;なるほど、雄たけんでるように見えなくもない。&lt;/p&gt;&#xA;&lt;h3 id=&#34;仕組み&#34;&gt;仕組み&lt;/h3&gt;&#xA;&lt;p&gt;Readme/ソースによれば、このツールの仕組みはこんな感じ。&lt;/p&gt;&#xA;&lt;h4 id=&#34;カードデータの入手&#34;&gt;カードデータの入手&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://mtgjson.com/&#34;&gt;MTG JSON&lt;/a&gt;で提供されている、全カードのJSONデータを取得する。そんなデータが有志によって管理されているんですね。これも&lt;a href=&#34;https://github.com/mtgjson/mtgjson&#34;&gt;GitHub上で管理更新されている&lt;/a&gt;ようです。&lt;a href=&#34;https://github.com/mtgjson/mtgjson/blob/master/json/10E.jp.json&#34;&gt;日本語データファイル&lt;/a&gt;もありました&lt;/p&gt;&#xA;&lt;p&gt;ここからJSONファイルをダウンロードし、それを前処理のスクリプトで必要なレコードのみのcsvを作り、それを使って動いています。&lt;/p&gt;&#xA;&lt;h4 id=&#34;ネタになるアニメーションgifの入手&#34;&gt;ネタになるアニメーションGIFの入手&lt;/h4&gt;&#xA;&lt;p&gt;アニメーションGIF版 YouTube、みたいなサイト&lt;a href=&#34;https://giphy.com/&#34;&gt;GIPHY&lt;/a&gt;に&lt;a href=&#34;https://developers.giphy.com/&#34;&gt;API&lt;/a&gt;が提供されていて、その中にキーワード検索APIもあるので、ランダムに選んだMtGのカードのタイトルを食わせています。タイトルによってはGIFが見つからない場合もあるみたいですが、その時は見つかるまで繰り返しています。&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;MtG&amp;quot;で検索して最初にでてきたのがこれ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/s0FsE5TsEF8g8/giphy.gif&#34; alt=&#34;Giphy sample&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;オリジナルのカード画像にgifをはめ込む&#34;&gt;オリジナルのカード画像に、GIFをはめ込む&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://gatherer.wizards.com/Pages/Default.aspx&#34;&gt;MtG公式からカード画像を取得&lt;/a&gt;し、&lt;a href=&#34;https://github.com/Zulko/moviepy/&#34;&gt;MoviePy&lt;/a&gt;ライブラリで、動画の各フレームを書き換えているようです。カードの世代によって画像の位置やサイズが違うので、世代にあわせて埋め込み座標を変えたりもしています。&lt;/p&gt;&#xA;&lt;h4 id=&#34;ツイートする&#34;&gt;ツイートする&lt;/h4&gt;&#xA;&lt;p&gt;PythonでTwitterを読み書きする&lt;a href=&#34;https://github.com/ryanmcgrath/twython&#34;&gt;Twython&lt;/a&gt;を使い、生成されたGIFをツイッターに投稿させています。&lt;/p&gt;&#xA;&lt;p&gt;これらをパッケージする Docker ファイルも置いてあり、自分の環境で簡単に再現できます。ツイッターに投稿するところは動かしませんでしたが、ローカルで動かしてみてできた画像がこちら。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2017/10/mtg_gif.mp4&#34;&gt;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2017/10/mtg_gif.mp4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;コードも完結で短く、データやAPIを組み合わせてうまく作ってるなと思いました。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=15449955&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>[メモ] Docker &#43; Spress で静的サイトを作る</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/10/docker-spress-php-static-site-generator/</link>
				<pubDate>Wed, 19 Oct 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/10/docker-spress-php-static-site-generator/</guid>
				<description>&lt;p&gt;PHP製の静的サイトジェネレーター Spress を、Windows 上で Docker で実行しました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/akky/docker-spress&#34;&gt;ソース&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;PHP製の静的サイトジェネレーター&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2016/09/docker-sculpin-memo/&#34;&gt;Sculpinを使ってみたのですが&lt;/a&gt;、開発が思ったほどアクティブでなさそうなのと、Spress が Sculpin の影響を受けた後継者である、みたいなことを言っている人がいたので、こちらも試すことにしました。&lt;/p&gt;&#xA;&lt;p&gt;今回も、Docker Compose を使ったセットアップのメモを、Spress自身を使って静的ブログにしてみました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://akimoto.jp/docker-spress/&#34;&gt;SpressをDocker(+Compose)で動かす&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;しかし、日本語のタグやカテゴリーに対してファイルを生成しないので、非ヨーロッパ諸語に関してはSculpinよりも手入れが必要という印象でした。slugを作るところの関数が、UTF-8一般には対応しておらず、マッピングテーブルを使ってウムラウト等を消しているだけ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>[メモ] Docker &#43; Sculpin で静的サイトを作る</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/09/docker-sculpin-memo/</link>
				<pubDate>Fri, 30 Sep 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/09/docker-sculpin-memo/</guid>
				<description>&lt;p&gt;PHP製の静的サイトジェネレーター Sculpin を、Windows 上で Docker で実行しました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/akky/docker-sculpin&#34;&gt;ソース&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;サンプルのテーマを派生させて差分で日本語+自分用のテーマを作ろうとしたけど、&lt;a href=&#34;https://sculpin.io/documentation/themes/&#34;&gt;theme の仕組みはまだ実験的です&lt;/a&gt;、とある通り、サンプルテーマもテーマ内のアセット読み込みに対応してなかったりまだまだでした。&lt;/p&gt;&#xA;&lt;p&gt;セットアップのメモをSculpin自身を使って静的ブログにしてみました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://akimoto.jp/docker-sculpin//&#34;&gt;Home — Docker ComposeでSculpinを動かすブログ — ついでにサンプルテーマを日本語に&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;使えそうなら自分用で必要な Theme と Bundle を作っていこうかとも思っていましたが、他のツールも触ってみた方がいいかもという結論になりました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>composerize - dockerコマンドラインをdocker-composeの書式に変換してくれるツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/</link>
				<pubDate>Fri, 02 Sep 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://composerize.com/&#34;&gt;Composerize&lt;/a&gt;は、コマンドラインオプションを持ったDockerコマンドを、Docker Composeの定義ファイルの形式へ変換してくれる、というサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://composerize.com/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/composerize-screenshot_hu_4d711e21a44942ab.webp 480w, https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/composerize-screenshot_hu_fd58592bff7500fb.webp 768w, https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/composerize-screenshot_hu_ac53839b5cca3afd.webp 821w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/composerize-screenshot.png&#34; width=&#34;821&#34; height=&#34;665&#34; alt=&#34;composerize-screenshot&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Dockerコマンドのオプションを列挙してるのが docker-compose.yml なので、コマンドラインパラメーターとymlに掛かれてるものは機能的には一対一に対応してはいるんです。しかし、名前が微妙に違っているパラメーターがあって、コマンドラインで動作確認したものをComposeに移行しようとした際にエラーが出てしまい、両方のマニュアルを開きながら調べて修正、など僕も苦労してました。&lt;/p&gt;&#xA;&lt;p&gt;Githubで公開されている&lt;a href=&#34;https://github.com/magicmark/composerize&#34;&gt;ソース&lt;/a&gt;の(&lt;a href=&#34;https://github.com/magicmark/composerize/blob/master/lib/js/converter.js&#34;&gt;コンバート部分を見れば&lt;/a&gt;、パラメーターの名前が微妙に違うものが多いのに気づきます)&lt;/p&gt;&#xA;&lt;p&gt;デバッグ時には反対向きの変換ツールもあるといいかも。&lt;/p&gt;&#xA;&lt;p&gt;via reddit&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
