dockerのインストールでハマりました

Docker のインストールは何度もやったことがあるのですが、稼働中のサーバー上でインストールした経験はなかったので、 (特殊な状況というか、あまり好ましくない状況ですが)ネットワーク周りで少しハマりました。 背景 稼働中のサービスがあるホストで、再起動は避けたい状況でした。 そのサービスのアップデートをデプロイする前に、docker コンテナ化したアップデート済みサービスを デプロイして検証しようとしていました。 いやまあ検証環境分けろはそうなんですが……。 発生した問題 centos7 に docker をインストールし、docker-compose でコンテナを起動した所、 他のコンテナとはネットワークアクセス可能なのに、外部へのアクセスができない状況でした。 (直接?の原因としては、 iptables の FORWARD チェーンが DROP になっていました。) iptables に docker 用のルールが自動で追加されるようなのですが(手元のマシンには追加されていました)、そのホストには 追加されていませんでした。 解決方法 systemctl restart docker を実行しました。終わり。 まとめ? 普通にホスト再起動してあげましょう。 というかメンテナンスしよ?

January 9, 2020 · 1 分

すごいHaskell楽しく学ぼうを読み始めました

関数型言語は Elm などいくつか触ったことがありますが、 Haskell はきちんと触っていなかったので すごいH本を読んでみました。 英語版も公開されていますね。 型クラス 型クラスという名前は知っていましたが、具体的にどのようなものかは分かっていませんでした。 サブクラスなども一貫性のある記述方法で、分かりやすいと感じました。 感想 8章あたりまで斜め読みをしただけなのですが、もう Haskell は楽しいと感じています。 あとはモナドトランスフォーマーなどの理解を……(?)

January 8, 2020 · 1 分

Svelteを使ってみました

9 Projects you can do to become a Frontend Master in 2020 をこなしていきます。今回は Svelte で ToDo アプリを作るやつを少しだけ進めてみました。 導入 The easiest way to get started with Svelte に書いてある通りですが、 degit を yarn で使うには少し注意が必要です。 npx degit の場合、2番目の引数はカレントディレクトリのフォルダ名になりますが、 (~/node_modules/.bin/degit を使う場合の) yarn degit の場合は、ホームディレクトリからのフォルダ名になるような気がします。 そのため、代わりに以下のコマンドを実行するのでもよさそうです。 git clone https://github.com/sveltejs/template my-svelte-project cd my-svelte-project rm -r .git yarn yarn dev 感想 今回はデフォルトの rollup をそのまま使ってみましたが、 webpack も使えるようです。 また webpack でも試してみようかなと思います。

January 7, 2020 · 1 分

ArchLinuxが壊れたときにまず試すことメモ

私は体に染みついていますが、他の人はそうではないと思うのでメモしておきます。 手順 USB key から起動して、いつも通りマウントして chroot して pacman -S linux する 自動化 まれによくあるので、installation 環境とデュアルブートにしておいて、fstabから自動マウントして、 いつも通りカーネルを再インストールするようにすると楽かもしれません。 最近はほとんど壊れないのでモチベーションは低いですが……今後の課題とします。

January 6, 2020 · 1 分

gatsbyを使い始めました

Jekyll を使い始めたところですが、早速浮気して Gatsby を使っていこうと思います。 9 Projects you can do to become a Frontend Master in 2020 に丁度 gatsby で blog を作るという項目があったので、これを順不同でこなしていこうと思います。 導入 gatsby new を実行します。 gh-pages 公式ドキュメントの How Gatsby Works with GitHub Pages を参考に、 yarn add -D gh-pages を実行して、 deploy スクリプトを追加します。 また、 gatsby-config.js に pathPrefix を追加して、実際のレポジトリに合わせて設定します。 GitHub Pagesにデプロイ yarn deploy を実行します。 標準では自動で gh-pages ブランチに push されるようです。 感想 内部で GraphQL を使っていてなるほど〜となりました。 今までこういった Static Site Generator を使ったことはなかったのですが、理想に近いものだと感じました。 でも github-pages 公式サポートのある Jekyll の方が楽なんですよね……少し悩んでいます。...

January 5, 2020 · 1 分

octokit 4.15.0がリリースされました

octokitをアップデートしました では octokit のリリースがまだだったので github から 直接インストールするようにしてアップデートしましたが、 4.15.0 がリリースされたのでそちらにアップデートします。 github 指定を削除 gem "octokit", github: "octokit/octokit.rb", ref: "ae5838a" を削除して、 bundle update を実行します。 これで faraday 1.0 系でもエラーにならずに正しく実行できるようになりました。 リリースありがとうございます!

January 4, 2020 · 1 分

Jekyllのタイムゾーン設定を変更しました

octokitをアップデートしました を投稿したのが01時 だったのですが、前日の投稿として表示されてしまいました。 原因・JST設定 GitHub の CI でのデフォルトのタイムゾーンが JST ではないからですね。 Jekyll の Configuration Options を確認すると、 Timezone を設定できるようです。 Asia/Tokyo に設定しました。 UTC に揃える 全部 UTC に揃えたら楽だとは思いますが、朝09時に日付が変わるのはまだ慣れないので…… と思ったのですが、 gatsby の方で面倒だったのでやっぱり UTC に揃えることにしました。

January 4, 2020 · 1 分

octokitをアップデートしました

Jekyllを使い始めました でセットアップ時に エラーが出ていたので調査しました。 原因 faraday gem の 1.0 がリリースされたことが原因ですが、リリースされたのが丁度01/01でした。 情報が少なかったわけです。 依存ツリーとしては github-pages github-pages-health-check, jekyll-gist, jekyll-github-metadata octokit (sawyer) faraday となっているようです。 また、 ~> 0 のような、1系が入らないバージョン指定もないようです。 各gemのissueの確認 issue github/pages-gem#665 PR octokit/octokit.rb#1154 どうやら原因は octokit にあるようです。 修正の PR 自体は master ブランチにマージされていて、リリースを待つだけのようです。 issue octokit/octokit.rb#1177 によると、来週にはリリースする予定ということです。 workaround 01/01 に書いたように faraday の 0.17 を指定することでもエラーは出なくなりますが、 octokit を github から取得するようにしても対応できます。 具体的には、 gem "octokit", github: "octokit/octokit.rb", ref: "ae5838a" を Gemfile に追加することで、 faraday の 1系を使えるようになります。 (ae5838a 以降であればいいので、 branch: "master" などでも問題ないです。)...

January 3, 2020 · 1 分

Progateを始めました

最近 Twitter で Progate という名前をよく見かけるので、 Go のレッスンを始めてみました。 レッスン1 やるだけ レッスン2 1枚目のスライドの内容とは関係ない部分ですが、Go のレッスン1、 レッスン2 を それぞれ GoⅠ と GoⅡ と表わしているのが見た目に紛らわしいなと思いました。 はい、やるだk……有料プランの説明が出てきました。 そういえば始めの方のレッスンのみ無料ということだったので、とりあえず無料のレッスンを進めていきます。 レッスン3, レッスン4 やるだけ 感想 Go、…… Better C? 関数型が好きです、よろしくお願いします。

January 2, 2020 · 1 分

Jekyllを使い始めました

一年の計は元旦にあり! …… ………… ……………… ( ˘ω˘ ) 元日なのでセーフということで…… Jekyll をセットアップしてブログを書き始めました。 今年は毎日何かアウトプットすることが目標です。 Jekyll のセットアップ セットアップの方法は、基本的に公式の docsに書いてある通りです。 jekyll new blog cd blog sed -i -e 's/^gem "jekyll"/# &/' -e '/gem "github-pages"/s/^#//' -e '$a gem "faraday", "~> 0.17"' Gemfile bundle update sed -i -e 's#baseurl: ""#baseurl: "/blog"#' _config.yml bundle exec jekyll serve 1つ問題があり、数ヶ月前に同様の手順を踏んだときから faraday が 1.0 にアップデートされたようで、実行時に jekyll 3.8.5 | Error: uninitialized constant Faraday::Error::ClientError というエラーが出るようになっていました。 そのため、 workaround として faraday を 0.17 系を使用するようにしました。 Happy new year!...

January 1, 2020 · 1 分