Tauriで実用?アプリを試してみてます(不定期ネタ)

授業のVMをVirtualBoxからDockerベースに変更したのですが、学生にとって本当にVM(的なもの)が動いているのかというのが不安になってしまうこともあるかと思います。 本当はdocker系のコマンドを教えたいところですが、それを話す学年ではない(そういう主戦場の学年はもうひとつ上)ので、稼働状態と最低限の制御のできるUIができないかなと思っていたら… あるではありませんか? Tauri ですよ。 TypeScriptとReact/Next.jsでつくる実践Webアプリケーション開発posted with ヨメレバ手島 拓也/吉田 健人 技術評論社 2022年07月25日頃 楽天ブックスAmazonKindle Build smaller, faster, and more secure desktop applications with a web frontend | Tauri Apps 実のところReactのUI設計とかは一切やったことなくかなり難儀してますが、その裏でこの春休み期間(学生のね)にRustにおけるbollardでちょっとだけdocker状態の取得とか操作を練習していたのでした。 とりあえず最初は状態の確認ができるようなUIのみにして、その後起動・終了を行えるようにボタンを付けるつもりです。現状はこんな感じ(スタブのみです)。 どんな感じ作っているのかですが… とっかかりはそれほど難しくありません。 1 % create-tauri-app で、TypeScriptベース、React使用という感じで雛形を作り、 src/App.tsx で表示に使っているところをゴリゴリ書き換えていきました。 なお、状態表示に関しては事前に調査をしていて、とりあえずuseEffectとタイマーで書き換えるようにしています。 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 const [dockerState, setDockerState] = useState(""); // Docker環境の状態を持つ const [vmState, setVmState] = useState(""); // VMの状態を持つ // ....

<span title='2023-04-10 05:39:26 +0900 +0900'>April 10, 2023</span>

actでローカルActions

次年度の授業用VMを作ったりしているのですが、このときにGitHub Actionsによる自動ビルドで配布できる物を生成できるようになってきました。 でもいちいちpushしてActionsを呼ぶのも面倒、ということでローカルでシミュレートできないかというのがあったので、古より話には聞いていたactを導入してみました。 【POD】GitHub Actions 実践入門posted with ヨメレバ宮田 淳平 インプレスR&D 2020年06月19日頃 楽天ブックスAmazonKindle nektos/act こちら、GitHub Actionsをローカルで実行できるようにする(全てではないが)一種のエミュレーターみたいな物です。 実はかなり初期に試したことがあって、当時ではさほど使えなかった(とか言えるほどの手持ちのコードではなかったはず)のでしたが、久しぶりに試してみたのでした。 すると、Dockerによるビルドを行うようになっていて、しかも中でDockerも使える(Docker in Docker)ので今回のイメージビルドも普通に行えるのでした。 初回起動時にはイメージの取得をsmall/medium/large(5Gぐらいのイメージ)と選べましたがmediumで一通り完遂できてます。 ついでにPi上でも動かせているので、self runnerよろしく使えたりもします。 バージョン番号的にはアレゲかもしれませんが、その実力はかなりの物です。Actions使ってる方はお試し下さい。案外動かせるかもよ。

<span title='2023-03-27 05:46:00 +0900 +0900'>March 27, 2023</span>

DevContainerがちょっと使えるようになってきた

最近、環境をなるべく壊さずに開発環境を保持できるDevContainerの立ち上げが少しずつ早くなってきました。 Docker(Desktop)を入れてれば(ここポイント)、準備しておいた開発環境を持ち込めるというものです。 ※ Rancher Desktopを試して酷い目に遭いました、この部分はDDの方が一日の長あり。 基本的に私は、普通のDockerイメージを用意した上での『ちょい足し』をベースにやってます。 ベースの環境 例えば一例として、Jekyllによるブログ環境(書いてる環境)で対応してみるとすると、ざっくりこうなります。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 FROM ruby:3 ARG USER=worker ARG USER_UID=1000 ARG USER_GID=1000 RUN apt-get update; apt-get install -y sudo git RUN groupadd -g ${USER_GID} ${USER}; \ useradd -m -s /bin/bash -g ${USER_GID} -u ${USER_UID} -G sudo ${USER} RUN echo "${USER} ALL = (ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USER}; \ chmod 400 /etc/sudoers.d/${USER} RUN mkdir /workspace; chown ${USER}:${USER} /workspace WORKDIR /workspace USER ${USER} EXPOSE 4000 ポイントがちょっとあります。...

<span title='2023-01-22 20:22:48 +0900 +0900'>January 22, 2023</span>