dockerで使われているサブネットをしらべる

方法

docker network inspect [ネットワーク名] -f '{{range .IPAM.Config}}{{.Subnet}}{{end}}'

$ docker network inspect afilms_default -f '{{range .IPAM.Config}}{{.Subnet}}{{end}}'
192.168.80.0/20

ネットワーク名を調べる方法

$ docker network ls
NETWORK ID          NAME                            DRIVER              SCOPE
8dd19b5b834f        afilms_default                  bridge              local
7e3ed89b9261        host                            host                local
b37e0264e6ff        none                            null                local

docker network inspect

docker network inspect [ネットワーク名] でいろいろな情報をみることができる

json形式で出力される

$ docker network inspect afilms_default
[
    {
        "Name": "afilms_default",
        "Id": "8dd19b5b834fbd9fe9617064aae427bf0ee1e2ca9fda82018c7256306eb0e738",
        "Created": "2018-05-04T06:33:59.6783397Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "192.168.80.0/20",
                    "Gateway": "192.168.80.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "07cffd072b8f66868568e5f5656b5a976b28cfeea7111206f2e405aba74d005b": {
                "Name": "afilms_app_1",
                "EndpointID": "51c4e38588fa7148f46a985c1e8b28192b758a6c901f56399afc5607dd3f4a16",
                "MacAddress": "02:42:c0:a8:50:05",
                "IPv4Address": "192.168.80.5/20",
                "IPv6Address": ""
            },
            "093e3bf733e30f5636e4726384e72081bc25854abfb093d6dc1c88991a3347c2": {
                "Name": "afilms_webpacker_1",
                "EndpointID": "4b6e62b3217d67b6a2591922ddefc935e2219b742a283b585e6bc2785d2e0ac0",
                "MacAddress": "02:42:c0:a8:50:02",
                "IPv4Address": "192.168.80.2/20",
                "IPv6Address": ""
            },
            "7f3c95cd015a63fe6ca0cc0f5a81fbc8146c5097a6240a097189beea3f60ca2f": {
                "Name": "afilms_job_1",
                "EndpointID": "c1782aae5e921fab976fcd07043e41be34fb170cbddec29b11dfb6b6dc77fbef",
                "MacAddress": "02:42:c0:a8:50:06",
                "IPv4Address": "192.168.80.6/20",
                "IPv6Address": ""
            },
            "d26464fada8e638de59e41bd7267e0a1b158c50721c2dd30c5b0358999359fcd": {
                "Name": "afilms_redis_1",
                "EndpointID": "d84772758772e0e3e380cd3f22c17b0149fb2eb8cdb5cb4bec8d37e2ba94b611",
                "MacAddress": "02:42:c0:a8:50:04",
                "IPv4Address": "192.168.80.4/20",
                "IPv6Address": ""
            },
            "da052580d9592738586858e620db089fd23e7e8577546450bf259350d134f48f": {
                "Name": "afilms_db_1",
                "EndpointID": "78bf286b1701834d36cf262fecf3e54cdec8b1e3e58bc82acdc771699ad7a20d",
                "MacAddress": "02:42:c0:a8:50:03",
                "IPv4Address": "192.168.80.3/20",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "afilms"
        }
    }
]

-f オプション

-f オプションをつけることによって出力フォーマットを指定することができる

$ docker network inspect afilms_default -f '{{.Name}}'
afilms_default

以上

2017年をふりかえる

転職

自分の中でこれが一番大きい

転職活動をしたのは生まれて初めてだったのだけど、大変だった

いろいろ事情があって、2017年3月末で退職するということになった

で、それが決まったのが2月下旬

したがって、退職するまで1ヶ月ちょっとしか期間が無いわけでして、あのときは非常に余裕が無かった

次に転職活動するときはもっと余裕がある状態で転職活動したいと思った

あと、働きながら転職活動するの、しんどすぎる

ポートフォリオ作り

しょぼい趣味アプリケーションを作る

2017年のはじめくらいから「機能的にはめちゃくちゃしょぼいアプリをRails+React+Reduxで作る」というのを思っていた

なぜそんなことをしようと思ったかというと、「はてなブックマークのホットエントリーに上がってくるような最新技術を使ってみたい」という思いがあったから
「最新技術を使うこと」が目的だから、機能的にはしょぼくていいわけです

それでプロジェクトを立ち上げて2017年のはじめごろからチマチマ作っていた

それがこちら

github.com

github.com

感想

React+Reduxを業務で使っているわけではなかったので、手探りしながら作っていって、とりあえず動くようになった

実際にモノを作ろうとすると「こういうことしたいんだけど、どうやったらいいんだ?」と思うタイミングが出てきて、そのたびに調べるのだけど、そのときに調べたことは学びが大きいと感じた

いままでチュートリアルをやって満足ということが多かったのだけど、それ以上に学びが得られたのはよかった

ただこのアプリケーション、個人的には使っているのだけど、なんか飽きてしまってずっと開発が止まっている...

Elixirを始めた

なにかのきっかけでElixirを触ってみて、おもしろいと感じたのでちょこちょこ触っている

それで、これもまた趣味プロジェクトで、Elixirを使ってなんか作ろうと思って、スクレイピングするアプリケーションを勉強がてら作ってみている

github.com

感想

書いてて楽しい

反省点

勉強会の参加が少なかった

今年はほとんど勉強会に参加しなかった気がする

Shinosaka.rb にはたぶん1回しか参加していない

その割に、Nagahoribashi.rb には、やたらと参加していた

Cherry.rb の開催が少なかった

Cherry.rb というコミュニティーのオーガナイザーの一人なのですが、イベント開催が少なかったので反省

前はオーガナイザーが本町周辺だったから、やりやすかったのだけど、私が転職して本町周辺の職場じゃなくなったというのも影響しているかもしれない

 

2018年にむけて

ポートフォリオ作り

会社の忘年会で「2018年の抱負を言え」と言われて「個人的にElixirでOSSプロジェクトしたい」 と答えた

言っちゃったものは仕方がないのでElixirを使ったアプリケーションを作り始めた

2018年は今年の延長線上で趣味プロジェクトをチマチマ作りながら、仕事もしていくという感じになると思う

Cherry.rb の開催を増やす

はい、増やします...

ブログを書く頻度を増やしたい

私も例に漏れず、ブログ三日坊主なのですが、もっと更新頻度増やしたい

最後に

今年1年お世話になりました

来年もよろしくお願いします

CircleCIでmix deps.getしたときに "Could not find Hex" とか言われて怒られたときの話

CircleCIの管理画面でGithubのProjectを追加して、次の画面で出てくる config.yml をなにも考えずにコピペしてイメージのタグを1.5にしたら言われた

どうしたら解決するの?

CircleCIドキュメントの Language Guide: Elixir にあるように、 mix deps.get の前に、下記を追加しました

      - run: mix local.hex --force
      - run: mix local.rebar

参考

circleci.com

感想

無いから入れた 言ってしまえばそれだけの記事になってしまった

CircleCIでプロジェクトを追加したときに出る config.yml のサンプルは1.4だったから問題なかったのかもしれない

最初からCircleCIドキュメントの Language Guide: Elixir からコピペしたらよかった

以上

お徳用マスクを買った

11月上旬頃に風邪を引いてから長引いていて、なかなかマスクが外せない

60枚入りのお徳用マスクを買っていたのだけど、使い切ってしまった

置いておいて腐るわけでもないから、多めにあっても困ることはないと思ってお徳用を探した。

ユニチャーム ソフトーク 超立体マスク  100枚入

ユニチャーム ソフトーク 超立体マスク 100枚入

これを買った

普通のサージカルマスクは、鼻の所を曲げるのが手間だったのだけど、今回買ったやつはその手間が省けるから良い。

以上

ex_docを初めて動かした 2017-12-14

ex_docというドキュメントツールがある

僕は今日初めて動かしたのでメモしておく

雑に書く

前準備

mix new する

mix new ex_doc_sample

やったこと

mix.exs を変える

こう変える

defmodule ExDocSample.Mixfile do
  use Mix.Project

  def project do
    [
      app: :ex_doc_sample,
      version: "0.1.0",
      elixir: "~> 1.5",
      start_permanent: Mix.env == :prod,
      deps: deps(),

      name: "ExDocSample",
      source_url: "https://github.com/kytiken/ex_doc_sample",
      homepage_url: "https://github.com/kytiken/ex_doc_sample",
      docs: [main: "ExDocSample", # The main page in the docs
             logo: "./logo.png",
             extras: ["README.md"]]
    ]
  end

  # Run "mix help compile.app" to learn about applications.
  def application do
    [
      extra_applications: [:logger]
    ]
  end

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    [
      {:ex_doc, "~> 0.16", only: :dev, runtime: false}
    ]
  end
end
対象のモジュール

mix new した直後のモジュール

defmodule ExDocSample do
  @moduledoc """
  Documentation for ExDocSample.
  """

  @doc """
  Hello world.

  ## Examples

      iex> ExDocSample.hello
      :world

  """
  def hello do
    :world
  end
end
deps.get
mix deps.get
ドキュメントを生成
mix docs
確認

f:id:kytiken:20171214202149p:plain

できたー

感想

簡単にきれいなドキュメント作れる ex_doc 最高だな

参考URL

github.com