<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: VA-11 Hall-A:東方算術騎士団【令和版】</title>
    <description>The latest articles on DEV Community by VA-11 Hall-A:東方算術騎士団【令和版】 (@problemaresolt).</description>
    <link>https://dev.to/problemaresolt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F181615%2F01aea15f-92d0-4db9-a19e-72ce45acabd9.gif</url>
      <title>DEV Community: VA-11 Hall-A:東方算術騎士団【令和版】</title>
      <link>https://dev.to/problemaresolt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/problemaresolt"/>
    <language>en</language>
    <item>
      <title>[WIP] メモです</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Mon, 20 Jan 2020 01:16:08 +0000</pubDate>
      <link>https://dev.to/problemaresolt/wip-dotnetcore-docker-visual-studio-wiki-abj</link>
      <guid>https://dev.to/problemaresolt/wip-dotnetcore-docker-visual-studio-wiki-abj</guid>
      <description>&lt;p&gt;dotnetcore Docker visual studio Wiki&lt;/p&gt;

&lt;p&gt;[WIP]&lt;br&gt;
Visual Studio Tools for Docker&lt;/p&gt;

&lt;p&gt;&lt;a href="https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker#ea137492"&gt;https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker#ea137492&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title> Docker-compose Elixir Phoenix &amp;&amp; Elm &amp;&amp; Nginx &amp;&amp; Redis 
Development environment</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Tue, 14 Jan 2020 13:17:28 +0000</pubDate>
      <link>https://dev.to/problemaresolt/wip-docker-compose-elixir-phoenix-elm-nginx-199l</link>
      <guid>https://dev.to/problemaresolt/wip-docker-compose-elixir-phoenix-elm-nginx-199l</guid>
      <description>&lt;h1&gt;
  
  
  Docker Phoenix 開発環境構築
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;バックエンドはElixir Phoenix &lt;/li&gt;
&lt;li&gt;フロントエンドはElm&lt;/li&gt;
&lt;li&gt;WebサーバはNginxで生成されます。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ものすごくざっくり説明なのでご容赦を&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Clone
&lt;/h2&gt;

&lt;p&gt;ProbremaResolt Github&lt;br&gt;
&lt;a href="https://github.com/ProblemaResolt/Problema"&gt;https://github.com/ProblemaResolt/Problema&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git clone https://github.com/ProblemaResolt/Problema&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Docker Build
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;docker-compose -f "docker-compose.yml" up -d --build&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Phoenix 構築
&lt;/h2&gt;

&lt;p&gt;内部に入る&lt;br&gt;
&lt;code&gt;docker-compose exec api sh&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Phoenix 立ち上げ
&lt;/h3&gt;

&lt;p&gt;option などは公式を参考にしてください。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hexdocs.pm/phoenix/Mix.Tasks.Phx.New.html#content"&gt;https://hexdocs.pm/phoenix/Mix.Tasks.Phx.New.html#content&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mix phx.new . --no-html --no-brunch&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Local は以下のフォルダが生成されます。&lt;/p&gt;

&lt;p&gt;/web/&lt;/p&gt;

&lt;p&gt;色々聞かれるのですが基本Yesで大丈夫です。&lt;/p&gt;
&lt;h3&gt;
  
  
  ライブラリインストール
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;mix deps.get&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;dapter の{:plug_cowboy, "~&amp;gt; 1.0"},を追加　&lt;/p&gt;

&lt;p&gt;config/mix.exs内へ追加&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[中略]
  defp deps do
    [
      ~
      {:plug_cowboy, "~&amp;gt; 1.0"},　#追加
      ~
    ]
  end

[中略]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  DevDB 接続
&lt;/h3&gt;

&lt;p&gt;\config\dev.exs の書き換え&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[中略]
config :web, Web.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: "postgres",
  password: "postgres",
  database: "api_dev",
  hostname: "db",
  pool_size: 10
[中略]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  DB Migrate
&lt;/h3&gt;

&lt;p&gt;DB情報を更新&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mix ecto.create&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Phoenix 起動
&lt;/h3&gt;

&lt;p&gt;Phoenix server を起動します。&lt;br&gt;
&lt;code&gt;mix phx.server&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;※ docker-compose.yml command に仕込んでおけば &lt;code&gt;dockr-compose up -d&lt;/code&gt; の際に起動してくれるようになります。&lt;/p&gt;
&lt;h3&gt;
  
  
  Env 設定
&lt;/h3&gt;

&lt;p&gt;ちょっとまって...&lt;/p&gt;
&lt;h2&gt;
  
  
  Elm 構築
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;docker-compose exec assets sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;elm project 作成します　聞かれたらYで応答してあげてください。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/app/assets #　elm init
Hello! Elm projects always start with an elm.json file. I can create them!

Now you may be wondering, what will be in this file? How do I add Elm files to
my project? How do I see it in the browser? How will my code grow? Do I need
more directories? What about tests? Etc.

Check out &amp;lt;https://elm-lang.org/0.19.1/init&amp;gt; for all the answers!

Knowing all that, would you like me to create an elm.json file now? [Y/n]: y
Okay, I created it. Now read that link!
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/app/assets # elm reactor
Go to &amp;lt;http://localhost:8000&amp;gt; to see your project dashboard.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;するとブラウザに表示されます！&lt;/p&gt;

&lt;p&gt;/assets/src に elm file を作成して設置すると表示してくれます。&lt;/p&gt;

&lt;p&gt;とりあえずここまで&lt;/p&gt;

&lt;h1&gt;
  
  
  参考資料
&lt;/h1&gt;

&lt;p&gt;API&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Phoenix 公式&lt;br&gt;
&lt;a href="https://hexdocs.pm/phoenix/"&gt;https://hexdocs.pm/phoenix/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Phoenix入門 （第14章 Mix Tasks その１）
&lt;a href="https://www.tech-note.info/entry/phoenix-14-mix-tasks-1"&gt;https://www.tech-note.info/entry/phoenix-14-mix-tasks-1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ElixirでSI開発入門 #4 本番パスワードを環境変数に持たせる
&lt;a href="https://qiita.com/tuchiro/items/4ccba7e210c596c383af#%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A%E3%81%A7%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B"&gt;https://qiita.com/tuchiro/items/4ccba7e210c596c383af#%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A%E3%81%A7%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Redis関連参考
PhoenixでRedisを使った簡単ランキングの実装
&lt;a href="https://qiita.com/koyo-miyamura/items/b5c123fa40685b9f8073#%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%82%92%E4%BD%9C%E3%82%8B"&gt;https://qiita.com/koyo-miyamura/items/b5c123fa40685b9f8073#ランキングロジックを作る&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assets&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elm 公式
&lt;a href="https://guide.elm-lang.jp/"&gt;https://guide.elm-lang.jp/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Docker 関連
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;docker-compose コマンド概要&lt;br&gt;
&lt;a href="http://docs.docker.jp/compose/reference/overview.html"&gt;http://docs.docker.jp/compose/reference/overview.html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;コマンド一覧（Docker Compose編）&lt;br&gt;
&lt;a href="https://www.wakuwakubank.com/posts/354-docker-command-compose/"&gt;https://www.wakuwakubank.com/posts/354-docker-command-compose/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compose ファイル・リファレンス&lt;br&gt;
&lt;a href="http://docs.docker.jp/compose/compose-file.html"&gt;http://docs.docker.jp/compose/compose-file.html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>docker</category>
      <category>elixir</category>
      <category>elm</category>
      <category>nginx</category>
    </item>
    <item>
      <title>Docker-Compose＆typescript-react-sass-webpack-babel-boilerplate</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Tue, 17 Dec 2019 02:44:44 +0000</pubDate>
      <link>https://dev.to/problemaresolt/docker-compose-typescript-react-sass-webpack-babel-boilerplate-4jcd</link>
      <guid>https://dev.to/problemaresolt/docker-compose-typescript-react-sass-webpack-babel-boilerplate-4jcd</guid>
      <description>&lt;h1&gt;
  
  
  GitHub
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/ProblemaResolt/DockerFrontendReact"&gt;https://github.com/ProblemaResolt/DockerFrontendReact&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Docker
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;docker-compose&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  typescript-react-sass-webpack-babel-boilerplate
&lt;/h1&gt;

&lt;p&gt;This is a basic boilerplate for these technologies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;SASS&lt;/li&gt;
&lt;li&gt;Webpack&lt;/li&gt;
&lt;li&gt;Babel&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Setup dev environment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docker-compose build&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker-compose up -d&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker-compose exec frontend ash&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yarn install&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;develop &lt;code&gt;yarn run webpack:dev&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;open &lt;code&gt;http://localhost:8000/&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Production
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;production &lt;code&gt;yarn run webpack:prod&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reference Material
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;typescript-react-sass-webpack-babel-boilerplate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;link:[&lt;a href="https://github.com/maxbause/typescript-react-sass-webpack-babel-boilerplate"&gt;https://github.com/maxbause/typescript-react-sass-webpack-babel-boilerplate&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Webpackの設定は変えていますが、ドイツの　max さんのやつ参考（ほぼ）にしましたありがとう！！！！&lt;/p&gt;

&lt;p&gt;MaxBauseさんのサイト&lt;/p&gt;

&lt;p&gt;&lt;a href="https://maxbause.me"&gt;https://maxbause.me&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>react</category>
      <category>typescript</category>
      <category>saas</category>
    </item>
    <item>
      <title>mix ecto.migrate で重複エラーが起きた時のメモ</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Thu, 07 Nov 2019 07:46:06 +0000</pubDate>
      <link>https://dev.to/problemaresolt/mix-ecto-migrate-kep</link>
      <guid>https://dev.to/problemaresolt/mix-ecto-migrate-kep</guid>
      <description>&lt;p&gt;すいませんものすごく個人的なメモです。&lt;/p&gt;

&lt;h1&gt;
  
  
  問題
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;mix ecto.migrate&lt;/code&gt;を行った際以下のようなエラーが発生&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;mix ecto.migrate
warning: found quoted keyword &lt;span class="s2"&gt;"test"&lt;/span&gt; but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of Unicode letters, numbers, underscore, and @ &lt;span class="k"&gt;do &lt;/span&gt;not require quotes 
  mix.exs:56

&lt;span class="k"&gt;**&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Ecto.MigrationError&lt;span class="o"&gt;)&lt;/span&gt; migrations can&lt;span class="s1"&gt;'t be executed, migration name create_articles is duplicated
    (ecto) lib/ecto/migrator.ex:275: Ecto.Migrator.ensure_no_duplication/1
    (ecto) lib/ecto/migrator.ex:256: Ecto.Migrator.migrate/4
    (ecto) lib/mix/tasks/ecto.migrate.ex:83: anonymous fn/4 in Mix.Tasks.Ecto.Migrate.run/2
    (elixir) lib/enum.ex:783: Enum."-each/2-lists^foreach/1-0-"/2
    (elixir) lib/enum.ex:783: Enum.each/2
    (mix) lib/mix/task.ex:331: Mix.Task.run_task/3
    (mix) lib/mix/cli.ex:79: Mix.CLI.run_task/2
    (elixir) lib/code.ex:813: Code.require_file/2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;英文ではcreate_articles名が重複しとるぞと&lt;/p&gt;

&lt;h1&gt;
  
  
  解決法（とりあえず解決法を知りたい人に）
&lt;/h1&gt;

&lt;p&gt;テーブル名が同じ名前のためエラーが出たのこと、&lt;br&gt;
以下のコマンドで通ります。&lt;br&gt;
&lt;code&gt;mix ecto.migrate --step 1&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  原因
&lt;/h1&gt;

&lt;p&gt;どうやら migrate する際にテーブル名が重複していたようでmigrationを一つに実行すると通るというわけですね。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can fix it by running 1 migration at a time&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;mix ecto.migrate --step 1&lt;/code&gt; こちらのコマンドをうつと&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;mix ecto.migrate &lt;span class="nt"&gt;--step&lt;/span&gt; 1
warning: found quoted keyword &lt;span class="s2"&gt;"test"&lt;/span&gt; but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of Unicode letters, numbers, underscore, and @ &lt;span class="k"&gt;do &lt;/span&gt;not require quotes 
  mix.exs:56

&lt;span class="o"&gt;[&lt;/span&gt;info] &lt;span class="o"&gt;==&lt;/span&gt; Running App.Repo.Migrations.CreateArticles.change/0 forward
&lt;span class="o"&gt;[&lt;/span&gt;info] create table articles
&lt;span class="o"&gt;[&lt;/span&gt;info] &lt;span class="o"&gt;==&lt;/span&gt; Migrated &lt;span class="k"&gt;in &lt;/span&gt;0.1s
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;やったぜ実行できました！&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ideally you should not have 2 migrations with the same name :)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;以下の記事でもあるようにテーブル名は同じ名前じゃだめだよーとのこと&lt;br&gt;
むむーどこで作成しちまっていたのか...&lt;br&gt;
メモでした。&lt;/p&gt;

&lt;h1&gt;
  
  
  参考リンク
&lt;/h1&gt;

&lt;p&gt;How to fix Ecto duplicate name migrations error &lt;br&gt;
&lt;a href="http://disq.us/t/2jnipyj"&gt;http://disq.us/t/2jnipyj&lt;/a&gt;&lt;br&gt;
ありがとう　&lt;a href="https://github.com/minhajuddin"&gt;https://github.com/minhajuddin&lt;/a&gt;　さん&lt;/p&gt;

&lt;p&gt;そのほか日本語での mix tasks を解説してくださっている記事です。&lt;br&gt;
Phoenix入門 （第14章 Mix Tasks その２） - 技術メモ&lt;br&gt;
&lt;a href="https://www.tech-note.info/entry/phoenix-14-mix-tasks-2#mix-ectogenmigration"&gt;https://www.tech-note.info/entry/phoenix-14-mix-tasks-2#mix-ectogenmigration&lt;/a&gt;&lt;br&gt;
ありがたいありがたい&lt;/p&gt;

&lt;p&gt;mix tasks は一通り覚えようと思いました...&lt;/p&gt;

</description>
      <category>elixir</category>
      <category>phoenix</category>
    </item>
    <item>
      <title>Pleroma official-docker-support</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Mon, 05 Aug 2019 06:07:38 +0000</pubDate>
      <link>https://dev.to/problemaresolt/pleroma-official-docker-support-48i0</link>
      <guid>https://dev.to/problemaresolt/pleroma-official-docker-support-48i0</guid>
      <description>&lt;p&gt;Merge branch 'official-docker-support' into 'develop'&lt;/p&gt;

&lt;p&gt;&lt;a href="https://git.pleroma.social/pleroma/pleroma/commit/ba72d02f86d229ae83d4ca669e548b9968bdf8dd"&gt;https://git.pleroma.social/pleroma/pleroma/commit/ba72d02f86d229ae83d4ca669e548b9968bdf8dd&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;詳細は帰宅後&lt;br&gt;
実際にやってみる。&lt;/p&gt;

</description>
      <category>elixir</category>
      <category>phoenix</category>
    </item>
    <item>
      <title>Windows10でDockerで起動したPhoenixとMySQLと開発環境となやみ</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Fri, 02 Aug 2019 08:53:06 +0000</pubDate>
      <link>https://dev.to/problemaresolt/elixir-api-elm-api-32hl</link>
      <guid>https://dev.to/problemaresolt/elixir-api-elm-api-32hl</guid>
      <description>&lt;h1&gt;
  
  
  caution！！！
&lt;/h1&gt;

&lt;p&gt;この記事は重大なミスを犯しています。&lt;br&gt;
コード書き換えが済んでおらず、今一度時間をつくって作り直します。&lt;/p&gt;
&lt;h1&gt;
  
  
  Windows１０でdockerとElmとPhoenix
&lt;/h1&gt;

&lt;p&gt;フロントエンドをelm バックエンドのAPIをElixir&lt;br&gt;
データベースをMysqlとして起動したいというなんか自分でやってみた感のあるものです。&lt;br&gt;
これいっぱつで環境できまっせみたいなのが出来ないかなぁと試行錯誤しております。&lt;/p&gt;

&lt;p&gt;課題として&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ShellScriptでまとめたい&lt;/li&gt;
&lt;li&gt;Elm は別にコンテナなのはとっ散らかるけどこれでいいの？&lt;/li&gt;
&lt;li&gt;セキュリティ的に怖いので .env のようなファイルが必要か&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;何か良い方法あったら教えてくださるとありがたいです。&lt;/p&gt;
&lt;h2&gt;
  
  
  docker compose ファイル
&lt;/h2&gt;

&lt;p&gt;MySQL8.0以降はまだ対応していない？そのため5.7にしています。&lt;/p&gt;

&lt;p&gt;mariaex error #222&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/xerions/mariaex/issues/222"&gt;https://github.com/xerions/mariaex/issues/222&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3'
services:
  db:
    image: mysql:5.7
    container_name: "dev_db"
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/volumes:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 'password'      
  api:
    build: ./
    container_name: "api_app"
    working_dir: /opt/app
    command: mix phx.server
    volumes:
      - .:/opt/app
    environment:
      MYSQL_ROOT_USERNAME: 'root'
      MYSQL_ROOT_PASSWORD: 'password'
      MYSQL_HOSTNAME: 'db'
      MYSQL_PORT: '3306'
    ports:
      - '4000:4000'
    depends_on:
      - db
  web:
    build: ./
    container_name: "web_app"
    ports:
      - "8000:8000"
    volumes:
      - ./web/volumes:/opt/app/web
    tty: true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Dockerのビルド
&lt;/h2&gt;

&lt;p&gt;バックグラウンドのAPIを作成するため、Phoenixを立ち上げます。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose build api
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  MySQLコンテナ起動
&lt;/h3&gt;

&lt;p&gt;DBを起動させます&lt;br&gt;
&lt;code&gt;-d&lt;/code&gt;を入れてバックグランドで動かします。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up -d db
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  PhoenixProject作成
&lt;/h3&gt;

&lt;p&gt;デフォルトはpostgreSQLであるためここではMySQLで起動します。&lt;br&gt;
（特に理由はないですがポスグレの場合はDocker-Compose.ymlをポスグレに修正してください）&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose run --rm api mix phx.new . --database mysql --no-html
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  ライブラリ追加
&lt;/h4&gt;

&lt;p&gt;dapter の&lt;code&gt;{:plug_cowboy, "~&amp;gt; 1.0"},&lt;/code&gt;を追加　&lt;/p&gt;

&lt;p&gt;config/mix.exs内へ追加&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[中略]
  defp deps do
    [
      {:phoenix, "~&amp;gt; 1.3.4"},
      {:phoenix_pubsub, "~&amp;gt; 1.0"},
      {:phoenix_ecto, "~&amp;gt; 3.2"},
      {:mariaex, "&amp;gt;= 0.0.0"},
      {:phoenix_html, "~&amp;gt; 2.10"},
      {:phoenix_live_reload, "~&amp;gt; 1.0", only: :dev},
      {:gettext, "~&amp;gt; 0.11"},
      {:plug_cowboy, "~&amp;gt; 1.0"},　#ココ
      {:cowboy, "~&amp;gt; 1.0"}
    ]
  end

[中略]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  ライブラリインストール
&lt;/h4&gt;

&lt;p&gt;Elixirライブラリをインストールします。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose run --rm api mix deps.get
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  開発環境のDB接続準備
&lt;/h4&gt;

&lt;p&gt;\config\dev.exs の書き換え&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[中略]
# Configure your database
config :app, App.Repo,
  adapter: Ecto.Adapters.MySQL,
  username: "root",
  password: "password",
  database: "app_dev",
  hostname: "db",
  pool_size: 10
[中略]

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  DB Migrate
&lt;/h3&gt;

&lt;p&gt;DB情報を更新&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose run --rm api mix ecto.create
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1&gt;
  
  
  起動する。
&lt;/h1&gt;

&lt;p&gt;アプリを起動します。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;code&gt;http://localhost:4000&lt;/code&gt; でPhoenixの画面が&lt;br&gt;
Welcome to Phoenix!&lt;br&gt;
A productive web framework that&lt;br&gt;
does not compromise speed and maintainability.&lt;/p&gt;

&lt;p&gt;出ればOKです。&lt;/p&gt;
&lt;h3&gt;
  
  
  Elixirバージョン確認
&lt;/h3&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose run --rm app elixir -v
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Phoenix バージョン確認
&lt;/h3&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose run --rm app mix phx.new --version
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Dockerコンテナ内へ入る場合
&lt;/h2&gt;

&lt;p&gt;注意：一応&lt;code&gt;docker ps&lt;/code&gt; などで確認してくんさい&lt;br&gt;
docker-compose ファイルで設定した&lt;code&gt;container_name: "web_app"&lt;/code&gt;を指定していますので container name でDocker内に入ります。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it web_app //bin/sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;これでDockerのコンテナ内に入れました。&lt;/p&gt;

&lt;h3&gt;
  
  
  elm の設定
&lt;/h3&gt;

&lt;p&gt;cd web/&lt;br&gt;
 にてElm用のディレクトリに移動します。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/app/ #  cd web/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;/opt/app/web # elm reactor&lt;br&gt;
すると&lt;br&gt;
Go to &lt;a href="http://localhost:8000"&gt;http://localhost:8000&lt;/a&gt; to see your project dashboard.&lt;br&gt;
ダッシュボードが &lt;a href="http://localhost:8000"&gt;http://localhost:8000&lt;/a&gt; に表示されます。&lt;/p&gt;

&lt;h2&gt;
  
  
  作業終了時
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose down
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;これでElmとElixir Phoenix の環境ができました。&lt;br&gt;
Linuxなどでファイル編集をする際の権限などまだまだ課題もあり&lt;br&gt;
そのあたり皆さんどうされているのでしょうか。&lt;/p&gt;

&lt;h1&gt;
  
  
  参考にしたページ
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Docker の設定
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Elixir/Phoenix+MySQL5.7環境をDocker/Docker Composeで整え開発する。
&lt;a href="https://qiita.com/studio23c/items/510a12abd53f3651b5b2"&gt;https://qiita.com/studio23c/items/510a12abd53f3651b5b2&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Elixir1.6 / Phoenix1.3の環境をDockerで整えてCRUDアプリを動かすまで
&lt;a href="https://qiita.com/dd511805/items/13f3ea4255dc4d1a3fbb"&gt;https://qiita.com/dd511805/items/13f3ea4255dc4d1a3fbb&lt;/a&gt; 
## Elixir Phoenix
Phoenix 公式
&lt;a href="https://hexdocs.pm/phoenix/overview.html"&gt;https://hexdocs.pm/phoenix/overview.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  elm
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create Elm App 
&lt;a href="https://github.com/halfzebra/create-elm-app#getting-started"&gt;https://github.com/halfzebra/create-elm-app#getting-started&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Elmで非同期Http通信を含んだSPAを試してみる
&lt;a href="https://qiita.com/sand/items/849c919b0d957ee99b9d"&gt;https://qiita.com/sand/items/849c919b0d957ee99b9d&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;elm 0.19 で JSONを使ってjsと通信したメモ
&lt;a href="https://qiita.com/hibohiboo/items/33a8dcf462bd8e4a55e0"&gt;https://qiita.com/hibohiboo/items/33a8dcf462bd8e4a55e0&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;elm-lang examples
&lt;a href="https://elm-lang.org/examples"&gt;https://elm-lang.org/examples&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>elixir</category>
      <category>docker</category>
    </item>
    <item>
      <title>ElmElixir memo</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Wed, 31 Jul 2019 17:08:01 +0000</pubDate>
      <link>https://dev.to/problemaresolt/elmelixir-memo-124j</link>
      <guid>https://dev.to/problemaresolt/elmelixir-memo-124j</guid>
      <description>&lt;p&gt;技術メモ&lt;br&gt;&lt;br&gt;
これを参考にPhoenixAPIを作成します。後日更新予定&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;
&lt;br&gt;
&lt;p&gt;API通信を伴うThe Elm Architecture を流れをサクっと体験する &lt;a href="https://t.co/SL5JmJntwj"&gt;&lt;/a&gt;&lt;a href="https://t.co/SL5JmJntwj"&gt;&lt;/a&gt;&lt;a href="https://t.co/SL5JmJntwj"&gt;https://t.co/SL5JmJntwj&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/Qiita?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Qiita&lt;/a&gt;&lt;/p&gt;— VA-11 Hall-A 東方算法騎士団(令和版) (@ElmElixir) &lt;a href="https://twitter.com/ElmElixir/status/1156380740180856832?ref_src=twsrc%5Etfw"&gt;July 31, 2019&lt;/a&gt;&lt;br&gt;
&lt;/blockquote&gt; &lt;br&gt;

&lt;blockquote class="twitter-tweet"&gt;
&lt;p&gt;ElmでJSON APIを叩く最低限 &lt;a href="https://t.co/AIAhSQrZhk"&gt;&lt;/a&gt;&lt;a href="https://t.co/AIAhSQrZhk"&gt;https://t.co/AIAhSQrZhk&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/Qiita?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Qiita&lt;/a&gt;&lt;/p&gt;— VA-11 Hall-A 東方算法騎士団(令和版) (@ElmElixir) &lt;a href="https://twitter.com/ElmElixir/status/1156380648317173760?ref_src=twsrc%5Etfw"&gt;July 31, 2019&lt;/a&gt;
&lt;/blockquote&gt; &lt;br&gt;
&lt;blockquote class="twitter-tweet"&gt;
&lt;p&gt;Building a RESTful API Backend with Authentication using Elixir Phoenix by &lt;a href="https://twitter.com/pamitmo?ref_src=twsrc%5Etfw"&gt;@pamitmo&lt;/a&gt; &lt;a href="https://t.co/rufX7sNLFJ"&gt;&lt;/a&gt;&lt;a href="https://t.co/rufX7sNLFJ"&gt;https://t.co/rufX7sNLFJ&lt;/a&gt;&lt;/p&gt;— VA-11 Hall-A 東方算法騎士団(令和版) (@ElmElixir) &lt;a href="https://twitter.com/ElmElixir/status/1156377232413036544?ref_src=twsrc%5Etfw"&gt;July 31, 2019&lt;/a&gt;
&lt;/blockquote&gt; &lt;br&gt;
&lt;blockquote class="twitter-tweet"&gt;
&lt;p&gt;Elixir + Phoenix でお手軽にJSONを返すWebAPIを構築 - にわとりプログラマーの備忘録 &lt;a href="https://t.co/QvzgZcGAN3"&gt;&lt;/a&gt;&lt;a href="https://t.co/QvzgZcGAN3"&gt;https://t.co/QvzgZcGAN3&lt;/a&gt;&lt;/p&gt;— VA-11 Hall-A 東方算法騎士団(令和版) (@ElmElixir) &lt;a href="https://twitter.com/ElmElixir/status/1156377012220469248?ref_src=twsrc%5Etfw"&gt;July 31, 2019&lt;/a&gt;
&lt;/blockquote&gt; &lt;br&gt;
&lt;blockquote class="twitter-tweet"&gt;
&lt;p&gt;Elixir+PhoenixでAPIをつくってReactから使ってみる &lt;a href="https://t.co/A6SO3wakc4"&gt;&lt;/a&gt;&lt;a href="https://t.co/A6SO3wakc4"&gt;https://t.co/A6SO3wakc4&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/Qiita?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Qiita&lt;/a&gt;&lt;/p&gt;— VA-11 Hall-A 東方算法騎士団(令和版) (@ElmElixir) &lt;a href="https://twitter.com/ElmElixir/status/1156375568247472128?ref_src=twsrc%5Etfw"&gt;July 31, 2019&lt;/a&gt;
&lt;/blockquote&gt; 

</description>
      <category>elixir</category>
    </item>
    <item>
      <title>C＃言語APIメモ</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Mon, 29 Jul 2019 02:13:05 +0000</pubDate>
      <link>https://dev.to/problemaresolt/webapp-3o6j</link>
      <guid>https://dev.to/problemaresolt/webapp-3o6j</guid>
      <description>&lt;p&gt;JavaScriptとWeb APIでデータベース処理を行うWebアプリを作成する【2019年版】 - GrapeCity.devlog &lt;a href="https://devlog.grapecity.co.jp/entry/2019/01/17/wijmo-flexgrid-webapi"&gt;https://devlog.grapecity.co.jp/entry/2019/01/17/wijmo-flexgrid-webapi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;一週間で身につくC＃言語の基本 &lt;a href="http://csharp.sevendays-study.com/"&gt;http://csharp.sevendays-study.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;一週間で身につくMySQL &lt;a href="http://web.sevendays-study.com/mysql/"&gt;http://web.sevendays-study.com/mysql/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>writing</category>
      <category>javascript</category>
      <category>mysql</category>
    </item>
    <item>
      <title>Windows10のWSLでDockerとDockerComposeを動かすところまでメモ</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Tue, 23 Jul 2019 05:50:47 +0000</pubDate>
      <link>https://dev.to/problemaresolt/windows10-wsl-docker-dockercompose-8nn</link>
      <guid>https://dev.to/problemaresolt/windows10-wsl-docker-dockercompose-8nn</guid>
      <description>&lt;blockquote class="twitter-tweet"&gt;
&lt;p&gt;Windows 10 HomeでWSL越しにDocker for Ubuntu+Re:VIEWを使う（VM不要） &lt;a href="https://t.co/xVObi8SHlh"&gt;https://t.co/xVObi8SHlh&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/Qiita?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Qiita&lt;/a&gt;&lt;/p&gt;— VA-11 Hall-A 東方算法騎士団(令和版) (@ElmElixir) &lt;a href="https://twitter.com/ElmElixir/status/1153540841773813760?ref_src=twsrc%5Etfw"&gt;July 23, 2019&lt;/a&gt;
&lt;/blockquote&gt; 

&lt;p&gt;残念ながら上記では動かず（2019/07/20）&lt;/p&gt;

&lt;p&gt;Dockerまでは動くがそれ以降のDocker-Compose下記のエラーで動かない&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# sudo docker-compose up
Creating network "etl_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable NAT rule:  (iptables failed: iptables --wait -t nat -I POSTROUTING -s {ip}/16 ! -o br-e9ec09beb9a3 -j MASQUERADE: iptables: No chain/target/match by that name.
 (exit status 1))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;エラー文でぐぐってみると&lt;br&gt;
dockerは動く、しかしネットワーク回りがダメってことらしいこれ解消できるのだろうけれどその道のプロでもないしなぁ…&lt;/p&gt;

&lt;p&gt;参考：&lt;/p&gt;

&lt;blockquote&gt;
dockerをWindows10 HomeのWSL (Windows Subsystem for Linux)で動かしてみた https://www.scriptlife.jp/contents/programming/2018/07/09/docker-on-wsl/
&lt;/blockquote&gt;

&lt;blockquote&gt;
WSLで「普通」にDockerが動くようになっていた話(しかしdocker-composeは動かない) - 無気力生活 (ノ ´ω｀)ノ ~゜ https://gdgd-shinoyu.hatenablog.com/entry/2018/07/10/032023
&lt;/blockquote&gt;

&lt;blockquote&gt;
WindowsとDockerは食い合わせが悪い https://qiita.com/Hibikine_Kage/items/4b5c0f5f72e4d03b4797 #Qiita
&lt;/blockquote&gt;

&lt;p&gt;WSL2の記事もあったので帰ったらためしてみまする。&lt;/p&gt;

&lt;blockquote&gt;
wsl2でdocker-composeの風を感じてみる - 無気力生活 (ノ ´ω｀)ノ ~゜ https://gdgd-shinoyu.hatenablog.com/entry/2019/07/25/024013
&lt;/blockquote&gt;

</description>
      <category>docker</category>
      <category>windows</category>
      <category>wsl</category>
    </item>
    <item>
      <title>はろーわーるど</title>
      <dc:creator>VA-11 Hall-A:東方算術騎士団【令和版】</dc:creator>
      <pubDate>Thu, 27 Jun 2019 09:28:40 +0000</pubDate>
      <link>https://dev.to/problemaresolt/-3dna</link>
      <guid>https://dev.to/problemaresolt/-3dna</guid>
      <description>&lt;p&gt;はろーわーるど&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
