カテゴリー
Linux

【Krypton】スマホ交換時にやったことと、`Public key for github.com does not match pinned key. If the host key has actually changed, remove the pinned key in Krypton.` エラーに対処した記録

まとめ

  • スマートフォンアプリと Kr cli とのペアリングをやり直すには kr pair を実行する。
    • Pair your computer
    • Already paired, unpair current session? [y/N] と尋ねられるので y と答えて既存のペアリング状態を解除する。
  • エラー Public key for github.com does not match pinned key. If the host key has actually changed, remove the pinned key in Krypton. への対応は、スマートフォンアプリにある Known Hosts を削除すればよい。
カテゴリー
Linux コンピューター

[hadolint] warning: Pin versions in apt get install. Instead of apt-get install use apt-get install = (DL3008) を正当な修正をして黙らせるまでの手順メモ

エラー詳細

DL3008 · hadolint/hadolint Wiki · GitHub

Docker イメージにパッケージをインストールするときに、バージョンが決め手になることは全然ないのですが、それだと hadolint が警告を出してきました。

無視したり、警告を抑制しても良いのですけれども、パッケージのバージョンをできるだけ細かく指定するべき、というのは、まあそうだよね、と思いましたので対応することにいたしました。

今回の例で取り上げるパッケージ

unzip 、および libpq-dev にバージョンを指定していないので、これらを例に取り上げます。もともと、この警告に対応してバージョンを明記していたのですけれども、久しぶりに Docker イメージのビルドを行ったところ、そんなバージョンは無い、と言われてしまったので、今回の投稿に繋がった背景もあります。そもそも、このようなケースの場合、バージョン指定などしなくてもよさそうな気もします。。。

対応流れまとめ。

  1. バージョン指定をしないまま、最新のパッケージを Docker イメージにインストールする。
  2. コンテナを立ち上げ、インストールしたパッケージのバージョンを調べる。
  3. Dockerfile に調べたバージョンをコピペする。

このうち、最初の手順である、 Docker イメージへの問題となるバージョン未設定パッケージのインストールは完了しているところから始まります。

カテゴリー
Linux コンピューター

【Laravel9 Vite Vue.js 3】 Swiper でサムネイル付きのスライドショー SFC を作成する記録

やりたいこと

  • Vue.js 3
  • Swiper の SFC への入力
    • 画像 URL の配列
  • Swiper の SFC からの出力
    • 特になし。
    • スライドショー、フォトギャラリーがウェブブラウザに描画される
      • サムネイルあり
カテゴリー
Linux コンピューター

WLS2 の Docker コンテナ内の Laravel9.2 Vite SPA 。 `npm run dev` 時に Docker ホストのウェブブラウザからコンテナ内の Vite 開発サーバに繋がるようにした記録

直面した問題

環境

npm run prod の場合は、静的ファイルを書き出してそのファイルへのリンクを HTML ファイルへ埋め込むようになっています。よって、ビルドされたファイルへのリンクは Laravel へアクセスするときの Apache なり Nginx なり PHP ビルトインサーバなりの URL と同じ URL が埋め込まれ、この URL でアクセスできるため問題はありません。

一方で、 npm run dev の場合は、 Vite の開発サーバが別途立ち上がります。そして Vite でビルドされたファイルへアクセスするための埋め込みリンクは、 Vite の開発サーバの URL となります。 Docker を使う場合、 Docker ホスト側から Docker コンテナ内の Vite 開発サーバへどうやってアクセスするのかが、問題になりました。

例えば、カスタマイズしていない vite.config.jsnpm run dev すると次のようになります。

  1. URL は次のように表示された。
    • VITE ➜ Local: http://localhost:5173/
    • LARAVEL ➜ APP_URL: http://localhost
  2. Docker ホストにて、ウェブブラウザで http://localhost/ にアクセスすると画面真っ白になった。
  3. ページのソースコードを見てみると、 Vite でビルドされたファイルへのリンクは <script type="module" src="http://127.0.0.1:5173/resources/js/app.js"></script> となっていた。この URL にアクセスしてみても ERR_CONNECTION_REFUSED のエラーページとなった。
  4. Docker コンテナの port に "5173:5173" を追加し、再度 http://127.0.0.1:5173 へのアクセスを試したところ、異なるエラー ERR_EMPTY_RESPONSE となったもののやはりエラーページとなった。

今回、これを解決しましたのでメモいたします。

カテゴリー
Linux

nunomaduro/larastan 1.0.3 で Laravel 8 の無編集のソースコードへのエラーに対応したメモ

まとめ

  • composer update nunomaduro/larastan:^1.0 --dev でアップデートしたところ、 Laravel インストールして生成された無編集のソースコードでエラーが発生した、
  • https://github.com/laravel/laravel/blob/8.x/app から最新ソースコードを適用することで解決したエラーもあった。
  • どうしても解決できないものは、 Ignoring Errors | PHPStan を参考にエラー抑制した。
カテゴリー
Linux

Laravel 8 、 Larastan 1.0.3 。API リソースクラスに対してプロパティが無いエラー、例えば Access to an undefined property App\Http\Resources\UserResource::$id. に対応する方法メモ

対応方法まとめ

  • その1
    • API リソースクラスの toArray メソッド冒頭に、例えば /** @var \App\Models\User $this */ と書く。
    • 要は、 PHPDocs で API リソースクラスで使用するモデルを $this に紐づければ良いようだ。
  • その2
    • クラスコメントに、例えば /** @mixin \App\Models\User */ と書く。
    • 要は、 PHPDocs で API リソースクラスに使用するモデルを混ぜ込めば良いようだ。
カテゴリー
Linux

Laravel 8 での Vue.js 3 を使った SPA に Bootstrap Icons を導入するためのメモ

なぜメモったか

Bootstrap Icons · Bootstrap 向けのオープンソース SVG アイコンライブラリ のページを見ると、インストールと使い方は書いてあるものの、それだけでは足りず、調べなければうまく使うことができませんでした。

ですので、調べた内容を、走り書き程度ですが、メモいたします。

カテゴリー
Linux

Laravel 8 の Vue.js 3 の SPA に laravel/ui を使わないで Bootstrap 5 を導入するまでのメモ

まとめ

カテゴリー
Linux

Docker のホスト側に在る VS Code にて Docker コンテナ内の Xdebug と通信してステップ実行するための勉強と理解とポイントと設定

状況

  • Remote – Containers – Visual Studio Marketplace は使わない。
  • ホスト側にデバッグしたい PHP コードがあり、同じコードが Docker コンテナにもある状況。ボリューム共有はしていない。
  • 本当は Remote – Containers を使いたいが、古い Docker イメージでは使えない場合がある。そしてそのようなケースでは大抵 PHP も古く、 Xdebug も最新のバージョン 3 は使えず、バージョン 2 を使うことになる。この投稿では Xdebug 2 を取り扱う。
カテゴリー
Linux

Laravel 8 で Vue.js 3 を SPA として使えるようにした記録メモ

どの状態から始めたか?

Laravel 8 をインストールした直後に Vue.js 3 を SPA として最低限使えるようにしました。