Logic Delight

明日のワシは忘れてしまうから、コードにはコメントを書くのです。

Docker for Mac がアップデート後に起動しなくなった件

Docker for Mac がアップデート後に起動しなくなったのよ

以前にも同様のことがあった気がするが、また遭遇。せっかく週末にやる気を出そうとしている中で、こういうハマりをするのはお控えいただきたいところ。

エラーの内容はこんな内容で、単純に restart しても状況は変わらず(再度同じエラーになって docker は起動しないまま)

2021-09-04T01:15:49Z dockerd time="2021-09-04T01:15:49.913926085Z" level=debug msg="Calling GET /images/sha256:33173ccd286743e6b1c1b663a354562737b2980d2bbb6d7b493edbea8926ef4e/json"

macでdocker desktopが起動しないときのシンプルな対処方法 | DevelopersIO

ここらへんを見て、まぁ、そうか、そんなところか。と Reset to factory defaults を選択して再起動させる。

この日は試行錯誤の結果、上記のResetしても、アンインストール→インストールし直しても、動作してくれなかった。

対応に疲れたのもあり、当時は Docker Desktop が 4.0.0 になったばかりだったので、メジャーバージョンアップ起因の問題と勝手に決めつけて、次のパッチバージョンが出るのを待った。(つまり、一旦諦めて放置)

(後述する)解決編の要点

  • 原因は、mackup の Dropbox バックアップ(シンボリックリンク化)と、Dropboxの同期不調の合わせ技と思われる
  • 直接の起動失敗理由は、 docker-cli-api.sock にDockerがアクセスできなかったこと
  • mackup のバックアップ対象からDockerを外し、Dropboxフォルダへのシンボリックリンクを削除したら解決

解決編

新バージョンでもエラー再び

Docker Desktop が 4.0.1 が出たので、もう一度インストールからリトライしてみるも、まだ別の内容でエラーが出る。

解消する前にエラーのキャプチャを撮っておけば良かった、当時出ていたエラーメッセージはこんな内容。(以降、 username 部分はMacのユーザ名が入ります)

monitoring tasks: one of the sub-processes failed unexpectedly: docker serve --address unix:///Users/username/.docker/run/docker-cli-api.sock (pid: 64654)

ここから再度Reset Default ...をやっても、アンインストール→インストールしても、事象は解消せず。

エラーメッセージを冷静に見て状況確認

エラーメッセージをコピーしてググったりはしていたものの、それ自体をよく見て状況確認することが抜けていた。(恥ずかしながら) /Users/username/.docker/run/docker-cli-api.sock のファイルは今どういう状況なのか?を確認しに行くと、そもそも /Users/username/.docker 配下に /run ディレクトリが無かった。。

その代わりに、 /Users/username/.docker 配下には、run (選択型同期の競合) という名称+連番のフォルダが無数にできていた。

run (選択型同期の競合)
run (選択型同期の競合 1)
run (選択型同期の競合 2)
:

各フォルダの配下には、事象に関連する2ファイルが確かに存在している

  • docker-cli-api.sock
  • docker.sock

選択型同期の競合 とは?

ところで「(選択型同期の競合)」って、なんやねん?ということでググってみる

なるほど、Dropboxに関連する事象か。

ん?この .docker フォルダってDropboxと何か関係しているんだっけ?

事象とバックアップ機能との関連に気づく

/Users/username/.docker の状況を確認すべく、 ls -la で確認してみると

~/.docker -> /Users/username/Dropbox/Mackup/.docker

というシンボリックリンクになっている。なるほど。そうか、バックアップアプリの mackup.docker ディレクトリをDropbox フォルダ下にシンボリックリンク化させてたのか。

具体的に解決

mackup のバックアップ自体は重宝していたが、Dockerに関する設定やデータちゃんとバックアップしたい、という強い思いもなかったので、ここは単純にmackup のバックアップ対象から外して元の状態を復旧することにした。

  • % unlink .docker
  • % vi ~/.mackup.cfg で以下の内容を記入
[applications_to_ignore]
docker

これにて、Dockerが無事に起動するようになりました☆めでたしめでたし

日本には多難が降りかかっておりますが、七夕でした

日本全国とくに西日本方面で記録的な大雨で大変なことになっておりますね。東京の新型コロナ感染者数もリバウンドした結果、再度の緊急事態宣言が発令される見込みとなり、ワシの新しい会社への入社日は緊急事態宣言中ということが確定しましたウス。

さぁ、そうこう言いつつ実はこのブログ更新を7月3日以降4日間も途絶えさせてしまいました。土日は、まいっか、という気の緩みからズダズダーっと地滑り的にダメな私が私なのって、継続は難しいものですね。今日は3日以降のブログを全部書いて取り戻そうとも一度は思いましたが、それで今日分を更新する気力が無くなるのも本末転倒な気がしたので、過去分のリカバリは後日ベストエフォートでやることにします。(勝手に割り切り)

RHODIA の goalbook とバレットジャーナル

ブログは更新サボっていたとはいえ、愛用のRHODIAの goalbook には日々のジャーナルログを書くのはちゃんと日課にできているので、やっていたことを掘り起こしてブログとして書くのは単に作業としてできる状態ではあります。RHODIAのノート大好きです。

んで、この goalbook には「バレットジャーナル」形式で月単位の計画&記録と日々の記録を残すようにしています。ごくごく簡単に表現すると「毎年/毎月/毎日の目標や予定を書いては見直して修正する」「日々の記録は箇条書き」だけなのですが、これが色々と奥が深いと言うか応用の幅が多々あるので、興味がある方はここらへんとか

bujo-seikatsu.com

この書籍を読まれると、正しい理解で効果的に取り組めるかと思います。私はマル2年はこれを続けています。

Ruby on Rails チュートリアル

第6章ハマりポイント

rails xxx コマンドが応答しなくなる

この章に特有のハマリポイントではなく、たまたま今日ここをやっているときに発生しただけなのですが、 rails t が応答しなくなった。Ctrl+C を押すとエラーを吐きつつ制御は戻ってくるのだが、どうにも復旧しなくて困った。

【Ruby on Rails】rails g コマンドが反応しない時の対処法 | Darablog

によると、springというヤツが原因らしく、記載のとおり spring stop で解消した。Rubyの世界にもJavaの世界にもSpringは大活躍なのね、と。。。

その他

Ruby on Rails チュートリアルには(今までやった範囲では少なくとも)載っていないのですが、アプリを作るときにGitHubを使っていてCIさせていないのが違和感というか不安を覚えるので、GitHub Actions を使ってRailsアプリのCIを実装しておいた。

参考にしたのは、この2つ。

1点目のほぼコピーだけでは rails test で「webpackerが〜」というエラーになってしまい完全に動いてくれなかった。2点目のサイトから「Install dependencies」のあたりを流用してきたら前提が整って動いてくれました。

最終形は↓コレです。(実際のチュートリアル学習ソースは private リポジトリにあるので、CI設定ファイルだけサンプルとして抜き出し)

https://github.com/shionit/rails-devcontainer/blob/main/.github/workflows/rails-ci.yml

やっぱりCIがグリーンになると気持ちいいですな。 README.md に build status badge も追加しておいた。

今日やったこと

今日思ったこと

  • 星乃珈琲店で、星乃ブレンドを1杯目に飲んで、2杯目(半額)以降で彦星ブレンドと織姫ブレンドを飲んだんだけど、今日は七夕だったので、なんかすっごくロマンチック☆だなと我ながら
  • 立てていた中間目標が未達だった場合、残り期間でのリカバリのために「時間泥棒」を見極めて遠ざけるべし
  • ポモドーロテクニックでリズムキープ&かかった時間計測をしながら作業できているのは、時間管理的にもいい感じ
    • これもどこかでブログに書こう

まだまだM1 Mac使いには険しい道が多い世の中でした

Ruby on Rails チュートリアル

さぁ、今日も今日とて勉強しておりましたが、思いもよらぬ開発環境問題でまたハマり直しまして、結果的に1章の一部をやり直す時間もかかってしまったので 2章/day 進める予定でしたがそこまでは進まず。(2章でどっと疲れた後、気分転換にGoの勉強をやったのが長引いた、というのも原因なので、時間的には余裕はありました)

とりあえず、M1 arm のMac(&Dockerの組み合わせかな)は今回のRailsに限らずハマりどころがまだ多い世界だと思うので、今は AWS Cloud9を使うのが無難なのかな、と。またはCloud IDE で思い出したけど GitHub Codespaces も可能性がある気がするので、どこかで試してみるか。←一応 Beta版利用の承認がおりてるので使える

第2章ハマりポイント

rails generate scaffold でエラー

  • これをやって手軽さを実感するのがメインの章なのに...
  • Function not implemented - Failed to initialize inotify と出てくる。昨日ハマった 「M1 arm docker is using qemu and this doesn't support inotify.」と同じ原因に行き着いてしまうのね
  • ここは諦めて AWS Cloud9 使ってチュートリアルを進めることにした

AWS Cloud9のプレビューが上手く表示されない

VFS connection does not exist」と表示されるパターンでした。

今日やったこと

  • (朝起きてブルブルマシンに乗りながら)読書(習慣化中)
  • Ruby on Rails チュートリアル(2章)
  • GoでWebプログラミング
    • 澤さんのVoicyを聴きながら

今日思ったこと

  • こうやって書き出してみると、環境問題以外では特にハマる要素がないんだよな、、、残念感。
  • 明日は、もう少し休憩をこまめに入れて、継続力をアップさせつつ1日トータルのペースアップを図るかな

Ruby on Rails チュートリアル始めて早速ハマった

7月に入りました。今月はRubyRuby on Rails v6)をガッツリ学ぶのが必須テーマなので、それを優先的に頑張ります。

Ruby on Rails チュートリアル

開発環境

第1章ハマりポイント

まずは作った開発環境の動作確認を含め、第1章をやってみる。早速幾つもハマって時間を消費したのでログを残しておく。

rails webpacker:install に失敗する

  • rails new の時点でエラーになっていた気がする。どういうこっちゃ。。。
  • その後の bundle update ではエラーにならないが、結局 webpacker のインストールができていないままなので、次の rails server でエラーになる
  • エラーメッセージに Errno::ENOENT: No such file or directory @ (中略)/config/webpacker.yml が出てた
    • 【Rails】rails webpacker:install に失敗する場合の対処法 - Qiita を参考に config配下にwebpacker.ymlをコピペ(乱暴)
    • 後に、この対処だけではHerokuで動作しなかったため、改めて rails webpacker:install を実行して解消した
    • 後日再検証して、この↑暫定対処は不要ということを確認。次に挙げた development.rb の修正をしてから rails webpacker:install だけでOKでした

Function not implemented - Failed to initialize inotify でアプリ起動エラー

その他

Git や Heroku は経験済みなのでハマるところ無かったけど、 Herokuにデプロイしてアプリの動作確認はするが「アプリの停止」について触れられていないので、知らない人はFree Tier使い切りそうな懸念あり。

Herokuのアプリケーションの停止 / 再開 - Qiita を参考に停止しておいた。Herokuは久しぶりだけど、アカウントが有効活用される日が来てよかった。

今日やったこと

  • (朝起きてブルブルマシンに乗りながら)読書(習慣化中)
  • マネーフォワードME のプレミアム会員に登録した
  • 7月のカレンダーにタスク計画をブレイクダウン
  • Ruby on Rails チュートリアル を購入して開始

今日思ったこと

  • MFのプレミアム会員になったので、今までの資産推移とか見れてちょっと気持ちいい
    • 連携口座数も無制限になるので、ポイント系を追加登録しまくり
  • 1ヶ月のカレンダーに目標タスクをプロットしていくと、どれくらいのペースが必要かを計算することになり、ペース配分の実感が持てた
  • 言語・フレームワークチュートリアル、サクッと終わらせたいがバージョン問題などなどで記載のとおりに進まないものなのよね。ここらへんは仕方なく対策前進あるのみか

今週は3つもオンライン勉強会の予定がありAirPods Pro大活躍

6月も最終日です。2021年も半分が過ぎました。今年は個人的に大きな変化のある年になる流れだなぁ。明日から7月だから1ヶ月の活動計画をざっくり立てとかないとな。

澤さんのVoicy聞いてる

5月か6月のSlackイベントで元マイクロソフトの澤円さんが登壇しているのを聞いて、相変わらずいいことばかり言うなぁと関心。それをきっかけにVoicyというサービスを知り、スマホにアプリをインストールして澤さんのチャンネルをながら聴きしている。

voicy.jp

Voicyは音声コンテンツを配信しているプラットフォームで、インターネットラジオとか少し前のPodcastのイメージに近いサービスだと思う。

voicy.jp

毎日更新されるので楽しく聴かせてもらっているのですが、既に 1,230回(本稿執筆時点)も放送されていて、メインテーマの話とか対談とかの他にリスナーからの質問に答えるコーナーがあるんだけど、これが毎回本当にいいこと言う。ん?ここでの「いいこと」ってなんだろう。

まず、言いたいことの論理が整理されており、まとまった形で出てくるから飲み込みやすい。あと、悩んでも仕方がない解決しようがない問題はバッサリと切る(諦める/距離を置く)という合理的なスタンスも気持ちいい。日常にはシンプルな問題というのは少なくて、大体が複雑に絡み合った問題になったものが多いですが、それをシンプルに紐解いた上でそういう整理と割り切り方ができる、というのは参考になるなー、と。それらが、肩の力が抜けたジョークを交えて語られるので、非常にリラックスして聴いてられるオススメの良質コンテンツです。

今日やったこと

今日思ったこと

  • Magic Keyboard とワイヤレスマウスでお試し
  • 情報処理安全確保支援士のオンライン講習
    • 去年のものと大きく内容に差はなかった。理解度確認テストは一発で満点とれたので気持ち良い
    • 去年から受講時の電子メモを取ってたのが良かった。差分をUpdateすればいいだけなので、スムーズに勉強できた
  • 社外向けの自社のイベントで自社メンバーが賑やかししてくれるのは心強いというか、雰囲気としていい感じだな
  • やっぱり表形式のデータはスプレッドシート一択だな、使い勝手の面で

継続は難しい、だからこそ尊い

「日々ブログ更新する」といいながら日付更新後に遡り更新を騙し騙し運用しておりましたが。昨日はついに更新やりきれず。投稿日時は細工してあるものの、実態は翌日午前に更新しております懺悔。

今日こそはちゃんと今日のうちに更新する。 という緩い決意表明をしつつ、手短に。。。

今日やったこと

今日思ったこと

  • 一昔前に話題になっていたコワーキングスペースというやつに初めて行ってみた(ゲスト扱い)
    • フリーエリアは一定空間を保ちつつ埋まっていたが、契約者スペースはほとんどガラガラで空いてた
    • フリードリンクを飲みながら元上司と雑談していたが、空間が広いので普通のトーンで話している限りは周囲に気を使って話すような必要はない感じ
    • ノイズが少ない環境なので集中する空間としてはいいかもしれないが、近所の図書館で大丈夫な人はそれで十分かも
  • プロダクトマネジメントとプロジェクト推進」というオンラインイベント
  • 未読メールを減らす活動
    • Gmailの受信トレイが溢れているが、ざっとスクリーニングして「今となっては読む必要のないメール」は即削除して大量削減済み
    • 残りは「メールから派生したサイトの記事なり資料をちゃんと読んでからCloseする予定のメール」のみ、一つ一つが少し重い
    • とりあえず、継続的な活動としては「未読メールが増えないようにする」がMUSTで、日々そのための時間を少しずつ確保して、あわよくば徐々にでも減らしていく、の気持ちで健全化を目指す

笑いを愛し笑いに愛された男を応援してます

本日、平日だけどちゃんと朝から起きて活動し、昼過ぎに旧MacBookを売りに行ったついでに、エヴァンゲリオンの映画を観てきた。

ワシとヲタク大学とエヴァンゲリオン

大学時代は当時ヲタクの多いことで有名な大学だったので、エヴァンゲリオンTVシリーズ全盛期のあの頃「エヴァンゲリオンは必修科目」とか学生の中では言われていて、興味ないけど観ておかないと会話についていけないし面倒くさいなぁ、という感じでしか思っていなかった。一応TVシリーズ観たけど、終わり方の意味が分からんくて「おめでとうって何?これ何?」って消化不良してた。

のだが、最近YouTubeでチャンネル登録しているサンシャイン池崎がシン・エヴァンゲリオン劇場版シリーズの今まで公開された各回3分(時間内に収まっていないけど)まとめ動画をアップしていたのを見て元の映画は見てないけど単純に笑えた。んで元の映画とどれくらい一致しているんだろうかと気になってAmazon Prime Videoで『序』『破』『Q』の3作を観たところ、サンシャイン池崎の再現度の高さに爆笑&感動したので、これを踏まえて最終回である『縦ボクロ・ポッキーポッキー』を観に行ってみようか、という気持ちになった次第です。(縦ボクロ... というのは何か?というのはYouTube動画を参照ください)

サンシャイン池崎さん応援してるんで、皆様ぜひご覧いただきたい劇場版まとめ動画)

www.youtube.com

www.youtube.com

www.youtube.com

最終回の映画を観た感想は、思っていたよりちゃんと結論を締めくくっていたので安心したのと、やっぱり庵野監督は頭がおかしいと思った。入場者特典はメルカリで売るかな。。。

今日やったこと

今日思ったこと

  • 日々少しずつでも読書を進める習慣化のために、「朝起きてブルブルしながら」というのは目覚まし運動にもなるし、朝からちゃんと起きて活動する動機づけとリンクしていいのでは?と思って試してみている。始めたばかりだが今のところいい感じな気がする。この「他の動機と組み合わせる」というのがポイント
  • MacBookは、多少面倒でも2つの買取店に買取の査定をしてもらって、高い方に買い取ってもらった
    • 片方(家電量販店Y)は ¥33,000 で、もう一方(PC・スマホ・等の販売・買取店)は ¥42,750 と1万円の差額があった
    • そんなに買取価格が違う!?・・・相見積もりって大事だな、と改めて感じた