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

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先生の応答 質問してみたらすぐに答えが戻る。 ...

 ⭐️

jupyterlab利用 - dockerで動かす

データ分析の勉強してたら使ってみたい環境が出てきた。 jupyterってのがあるらしい pythonはlinuxのシェルで動かすもんかなぁって思ってたらそうやない。 コマンドライン環境だけじゃなくて、グラフとかマークダウンのハデな取り扱いができる環境ってのがある。 データ解析の記事を読んでたらjupyterlabってのがあるそうな。 なんちゅう便利さ。 図解!Jupyter Labを徹底解説!(インストール・使い方・拡張機能) - ビジPy ai-inter1.com 前はjupyter notebookで、jupyterlabが今は主流っぽい。 jupyterhubってのもあるらしいけど、複数人数利用のためのものっぽい。 学校とかが重宝するんかもしれんけど、自分はとりあえず使いたいのでjupyterlabでええ。 何年か前にlinux上でpythonはスクリプトを何度か見たけど、自分は去年にdjangoから入って、phpから改版したアプリ作ってdockerで動かして使ってる。 目的が決まってたからdjangoでええんやけど、最初の頃は配列の中が今はどうなってるんかなぁとか、どうやってweb画面にグラフ表示させるんかなぁって試行錯誤してた。 jupyter使えば一発で表示の練習はできる。 配列の中がどないな入り方してるのかとか見せてくれるし、マークダウン使えるみたいやから簡単なレポートなら作れるっぽい。 なんやねん、そんな便利なツールあるんや。 mariadbからデータ読み込ませたときに、行列ひっくり返さなあかんって、気づくのが早くなったかもしれんなぁ。 docker使ってやってる人おるなかって、探したらいた。 DockerでJupyterLabの環境を作ろう | インフォメーション・ディベロプメント www.idnet.co.jp 作者さんありがとう。 ソースはipynbって種類のテキストファイルを維持してくらしい。 どんなふうに永続化したらええのかがわかったので、自分でもやってみた。 dockerfileの読み替え 作者さんのページは1年前のもの。 docker使うしちょっとだけ新しくしてみる。 参考にさせてもらったdockerfileはFROM python:3.9.7-busterってあった。 busterってのはdebianのコード名。1つ前のバージョン。 debianのlinuxはコード名にディズニー映画「トイ・ストーリー」の登場人物の名前をつけてはる。 今の最新はbullseyeでアンディが乗ってる馬の名前ね。 dockerhubに公開されてるpythonイメージのタグが一覧になってる。 hub.docker.com busterをbullseyeに変更してFROM python:3.12.0a3-bullseyeにしてみたらdocker buildでコケた。 FROM python:3.11.1-bullseyeにしてみたらまたコケた。 FROM python:3.10.9-bullseyeもダメでFROM python:3.9.16-bullseyeにするとうまく行った。 用意したdockerfileはこうなった。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 FROM python:3.9.16-bullseye MAINTAINER "nari" ########################################################################################################### # jupyterlabの環境作成 ########################################################################################################### # パッケージの追加とタイムゾーンの設定 RUN apt-get update && apt-get install -y \ tzdata \ && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* ENV TZ=Asia/Tokyo # JupyterLab関連のパッケージ(いくつかの拡張機能を含む) RUN python3 -m pip install --upgrade pip \ && pip install --no-cache-dir \ black \ jupyterlab \ jupyterlab_code_formatter \ jupyterlab-git \ lckr-jupyterlab-variableinspector \ jupyterlab_widgets \ ipywidgets \ import-ipynb # 基本パッケージ # Pythonでよく利用する基本的なパッケージ RUN pip install --no-cache-dir \ scikit-learn \ numpy \ pandas \ scipy \ pycaret \ matplotlib \ japanize_matplotlib \ mlxtend \ seaborn \ plotly \ requests \ beautifulsoup4 \ Pillow \ opencv-python djangoのときみたいに、グラフに全角文字使いたくなったら、コンテナに日本語フォント入れたくなるんやけど、apt-getは最初はそのままにしといた。 ...

 ⭐️