ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

windows11+Rancherを使ったdocker環境

個人的には、仮想化ではvmwareから利用しはじめて、15年以上たつ。 dockerは5年以上。 実務でvirtualboxやvagrant使うことはあったけど、wslでdocker使ったことない。 そもそもwslってどんなんやろ、ってとこから始まる。 dockerは、linuxで動かしてmacからdjango開発ソース作りながら使ってる。 実務でgke扱うチャンスがあり、その開発環境をwsl2+rancherで扱うことになったので練習してみる。 win11 + wsl2 msの概要ドキュメントをまずは読んだ。 Windows Subsystem for Linux とは | Microsoft Learn learn.microsoft.com linuxバイナリを動かす環境をサンドボックスみたいな感じで使えるってことか。 wsl1が最初にあったもので、wsl2ならlinuxカーネルが動くらしい。 vscodeのプラグインにremote wsl拡張機能ってのがあるから推奨ともあった。 wslインストール 導入方法を解説してくれてるサイトがあった。 win10と11で導入方法が違うらしい。winverしたときに見えるバージョンにも制限あるらしい。 作者さんありがとう。 Windows+WSL2でDocker環境を用意しよう - カゴヤのサーバー研究室 www.kagoya.jp win10だとOS機能を追加してからmicrosoft storeからダウンロードして使うらしい。 win11だとwsl --installってやったらええだけ。 docker desktopインストール すんなり入った。 OS再起動必要やけどdockerは使えるみたいでhello-worldでイメージをpullしてできてた。 docker desktopの画面でもイメージ取れてることがわかった。 docker-compose versionってやったらv2.17.3が戻るから使えるんかもしれん。 データ置き場 データ置き場調べてみた。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 C:\Users\nari\AppData\Local\Docker のディレクトリ 2023/05/06 04:59 <DIR> . 2023/05/06 04:52 <DIR> .. 2023/05/06 04:35 0 backend.lock 2023/05/06 04:46 <DIR> engine_tasks 2023/05/06 04:31 881 install-log.txt 2023/05/06 04:35 <DIR> log 2023/05/06 04:38 201,381 log.0.txt 2023/05/06 04:43 339,923 log.1.txt 2023/05/06 04:59 595,139 log.2.txt 2023/05/06 05:06 68,858 log.txt 2023/05/06 04:46 <DIR> tasks 2023/05/06 04:46 <DIR> wsl 6 個のファイル 1,206,182 バイト 6 個のディレクトリ 56,264,491,008 バイトの空き領域 C:\Users\nari\AppData\Local\Docker> hyper-vで使うvhdxファイルがあるなぁ。150MBぐらいある。 ...

hugo-PaperModでssg使う-さらばwordpress

きっかけ lolipopの契約10年ぐらい経つんやけど、 mysqlの新しいバージョンへ自動移行やってくれん。 wordpressで作ってるページの動きが重いし、次の契約更新やめよかなって考えた。 なんでか知らんけど、google searchコンソールでインデックス未登録になってまうページも増えてきた。 こうなる理由が全然わからん。めっちゃ苦手分野。 投稿で作ったメモは240ぐらいはあるはずやけど、400以上ってそんなにページあるんか。 数えたら238やった。 wordpress本体やらプラグインやら、毎月2回ぐらい、多い時は3回ほど更新せなアカンのがうざい。 維持コスト下げてシンプルにならんのか。 ssgってのがあるらしい urlに使ってるドメイン名の手続き面倒なのと安さもあるから、やっぱレンタルサーバとwordpressの組み合わせをやめられへんってなったけど、ssgってのがあるらしいやん。 ssgは、Static Site Generation(静的サイト生成)の略で、ウェブサイトのコンテンツをビルドしてHTMLファイルとして生成してくれるんやて。 ローカルPCでビルドしたらhtml作るんやったら、macの中で書いてるメモを移行して表示の練習とテストができるっちゅうことか。 公開するときはビルドした結果をpublicフォルダからレンタルサーバにアップロードしたらええらしい。 wordpressとmysqlから脱却できるんかもしれんな。 代表格っぽいhugoでssgやってみたろやんけ。 ここまで2025年5月末。6月に基本構造を準備、7月にページを手動移行、8月に調整していったん引っ越し完了した。 マニュアルサイト 日本語解説がある。ダークテーマの取り扱いもあって見やすい。読ませてもらいまっさ。 Hugo 入門 · Go & Hugo ドキュメント v5.3 juggernautjp.info めっちゃ動き速いみたいやから、仮想化したmacの中で作ってく。 brewで一発インストール。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 nari@gvis-mac ~ % brew install hugo ⭐️インストールしてみまひょ ==> Downloading https://formulae.brew.sh/api/formula.jws.json ==> Downloading https://formulae.brew.sh/api/cask.jws.json ==> Downloading https://ghcr.io/v2/homebrew/core/hugo/manifests/0.147.8 ############################################################################################# 100.0% ==> Fetching hugo ==> Downloading https://ghcr.io/v2/homebrew/core/hugo/blobs/sha256:aa376ddf3fea3e7435ff9c685ec63a270 ############################################################################################# 100.0% ==> Pouring hugo--0.147.8.arm64_sequoia.bottle.tar.gz 🍺 /opt/homebrew/Cellar/hugo/0.147.8: 53 files, 70.4MB ==> Running `brew cleanup hugo`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). ==> Caveats zsh completions have been installed to: /opt/homebrew/share/zsh/site-functions nari@gvis-mac ~ % nari@gvis-mac gavann-it % hugo version hugo v0.147.8+extended+withdeploy darwin/arm64 BuildDate=2025-06-07T12:59:52Z VendorInfo=brew ⭐️拡張エディションっぽい nari@gvis-mac gavann-it % ベースどうするか テーマはいろいろあるみたいやけど、英語でドキュメント読まなアカンのかなぁ。 ...

 ⭐️

utmの中で動くmac(sequoia)でbrew doctorの警告回避

去年にsequoiaが動くmac m4を使い始めて、vmwareの代わりに utm入れてさらにsequoiaを稼働 させるようにした。 utmの中のsequoiaは前に使ってたintel macからデータ引越してるんやけど、ずっと放置してた警告No Cask quarantine support available: unknown reasonを回避してみた。 utmをホストしてるmac miniではこの問題発生せんかったし、intelからm4に引っ越してbrew使い続けたときだけ出るエラーなんとちゃうかなぁ。 警告の内容 こんなん出てた。 1 2 3 4 5 6 7 nari@gvis-mac script % brew doctor Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry or file an issue; just ignore this. Thanks! Warning: No Cask quarantine support available: unknown reason. ⭐️何だチミは nari@gvis-mac script % brewの状態はこんな感じ。brewはrubyで実装やったな。 ...

 ⭐️

macでwinmergeみたいなこと

djangoのソースいじったり、linux/mac/windowsのスクリプトを維持したり、この文章もgoogle cloudで動かしてるgitlabのコンテナに入れてる。 更新差分を確認するのは、ずっとwinmerge使ってるんやけど、macでも同じようなことできるんとちゃうか。 探してみたらあった。 DiffMergeってのがあるそうな 総本山はここ。 SourceGear | DiffMerge www.sourcegear.com 本来はプログラムをマージしてくのが目的なんやけど、自分は直近1年ぐらいの変遷がわかったらええ。 ファイルのありなしと、書いてる内容の差分が見えたらいったんOKやねんけどね。 macで書いてから、gitlabに登録してgit cloneしたあとに、内容が維持できてるかが見れるのが自分としての目的。 入れてみましょ。 ダウンロードするdmgファイルの名前にintel stableってあるけど、macやからm4でもうまいことやってくれるはず。 Extrasって書いてあるフォルダには実行には関係なさそうなファイルが入ってるから放置。 Applicationsのフォルダのエイリアスあるから、ドラッグして起動させてみたら動くやん。 brewでもインストールできるで。こっちのほうがバージョンアップ維持しやすいかも。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 nari@gvis-mac ~ % brew install --cask diffmerge ==> Downloading https://formulae.brew.sh/api/cask.jws.json ==> Caveats diffmerge is built for Intel macOS and so requires Rosetta 2 to be installed. You can install Rosetta 2 with: softwareupdate --install-rosetta --agree-to-license Note that it is very difficult to remove Rosetta 2 once it is installed. ==> Downloading https://download.sourcegear.com/DiffMerge/4.2.1/DiffMerge.4.2.1.1013.intel.stable.dm ############################################################################################# 100.0% ==> Installing Cask diffmerge ==> Moving App 'DiffMerge.app' to '/Applications/DiffMerge.app' ==> Linking Binary 'diffmerge.sh' to '/opt/homebrew/bin/diffmerge' ==> Linking Manpage 'diffmerge.1' to '/opt/homebrew/share/man/man1/diffmerge.1' 🍺 diffmerge was successfully installed! nari@gvis-mac ~ % エンコードとか初期設定 インストーラがあるアプリケーションやったら言語で日本語選べることもあるけど、macのソフトウェアは日本語でストレートに動きだすことは少ない。 ...

 ⭐️

jupyterlabのdockerコンテナを作りなおすのを生成AIに手伝ってもらう

使う場面 jupyterlabってのはpythonとかをちょっと試したいときとかに使う。勉強で参照した小さな処理の実行とか、pythonの処理の習作とかを動かすから、ないと困る。 似たようなものでgoogleのcolabとかあるけど、機密情報をそんなところでホイホイ扱うと、業務で必要な加工のためとはいえ勝手に顧客データアップロードすることになってしまう。 色々考えて、pythonをインタプリタっぽく使うときはdocker環境のjupyterlab一択。 バージョンアップ jupyterlabのdockerコンテナにログインして、たまに手動でpipからバージョンアップしてる。 これを久しぶりにdockerイメージから作り直したいから、gemini先生に手伝ってもらおっかな。 3年ぐらい前にjupyter をdocker-composeで使い始めて、ほぼ当時のdockerイメージをそのまま使ってた。 今回はdockerファイルの中でpip系のインストールするモジュールをダラダラ書くんやなくて、requirements.txtを使うようにしたいなぁ。 自分用のdocker compose構成とかあるし、gemini先生に聞いてみて参考にさせてもらおっか。 やりたいこと こんな感じのことやりたい。プロンプト作るときの元にする。 pythonのバージョンをrc版でない最新に上げる(dockerhubで公開されているpythonのバージョン確認したもの使う) 今までdockerファイルに書いてたpip系のインストールをrequirements.txtで指定するように変更する(今回実現したいこと) グラフ描いたときに日本語扱えるようにする(dockerイメージをビルドするときに日本語フォント入れる) 今まで作業で作ったテキストやipynbを維持して使う(使う側には必須ね) docker-composeやなくてdocker compose環境で使って公開ポートを指定して使う(compose.ymlってリクエストしたらやってくれるやろか) なんも知らんフリをして書いてもらう。 大事なのは、自分の環境にフィットさせるのは自分でやらないといけない。 生成AIは大筋8〜9割ぐらいあっているものを提供してくれるけど、だいたい残りの1割ぐらいは自分で書き直して使う必要があるんよね。 「こう書こう」ってモヤっとしたイメージあるけど、gemini先生に補助してもらいましょ。 dockerhubの確認 ビルドするときにはdockerhubの公開モジュールを使う。 jupyterlabのもあるんやけど、種類が多すぎてどれ使うねんって感じ。 https://hub.docker.com/u/jupyter できるだけofficialイメージをベースにしておいて必要なものは追加してビルドするから、pythonをベースイメージにしといてjupyterlabのモジュールをpipで追加して使いましょ。 タグにslimってついてるのが小さめのイメージやから、それをdockerfileのfrom指定で使う。 3.14がそろそろメインになりそうやけど、rcってついてるから今は3.13使うかな。 https://hub.docker.com/_/python gemini先生に問う 具体的に何をどう作るか考えてみる。 1 2 3 4 5 6 docker composeで以下の条件で、jupyterlabをビルドするためのdockerfileとcompose.yml定義を作って ・jupyterlabではなくpython3.13.3-slim-bookwormをベースにしてdockerfileを定義 ・requirements.txtを使ってjupyterlab/matplotlib/scikit-learnを指定 ・pythonで日本語ゴシックフォントを扱う ・公開ポートは21088を使う ・compose.ymlで永続化領域workspaceは./nariDockerDat/sv_jupyter/を指定して pythonのmatplotlibでグラフを描くとき、タイトル・縦軸・横軸・判例とかに日本語使いたい場合があるんやけど、そのときはフォントを入れとかな表示うまいことできん。 あと、ポート番号と永続化領域は他にも動かしてるコンテナあるからちゃんと指定したいから、そういうことも加味して考えてくれたら嬉しいなぁ。 gemini先生の応答 質問してみたらすぐに答えが戻る。 ...

 ⭐️