アプリ関連ニュース

拡散型LLM「Mercury」が発表

AIスタートアップのInception LabsがMercuryを発表したそうです。
Mercuryは拡散大規模言語モデル(dLLM)という次世代LLMだそうです。

続きを読む

Docker for Windowsの「WSL Integration」エラーとその対処法

今回は、Docker for Windows を使用中に発生した「WSL Integration」関連のエラーと、その対処方法について共有したいと思います。

発生したエラー

先日、Docker コンテナを起動しようとしたところ、以下のエラーが表示され、再起動しても解消されませんでした。

WSL integration with distro 'Ubuntu' unexpectedly stopped. Do you want to restart it?
configuring docker in Ubuntu: docker cli config: failed to write file: exit status 2


前日までは問題なく動作していたため、WSL(Windows Subsystem for Linux)側が不安定になっているのではないかと考え、次のコマンドで WSL を一度シャットダウンしました。

wsl --shutdown


再び Docker Desktop を起動すると、今度は以下の別のエラーが発生しました。

WSL integration with distro 'Ubuntu' unexpectedly stopped. Do you want to restart it?
retrieving homedir for Ubuntu distro: getting home folder for Ubuntu distro: running echo $HOME in Ubuntu: sending to distro: write |1: The pipe is being closed.

再起動を試みてもコンテナの起動には至らず、Ubuntu 側の WSL 環境が壊れている可能性が考えられました。

WSL(Ubuntu)に直接ログインできるか確認

念のため、WSL 上の Ubuntu に直接ログインできるか確認してみました。

wsl -d Ubuntu

すると以下のように、正常にログインできました:

Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)

linux@LAPTOP:/mnt/c/Users/nishida$

このことから、WSL 自体は正常に動作しており、Docker Desktop 側の連携に問題があると判断しました。

一時的な回避策:WSL Integration をオフにする

以下の手順で、WSL との連携を一時的に無効化してみました。

1. Docker Desktop を開く

2. Settings > Resources > WSL Integration に移動

3. 「Enable integration with my default WSL distro」のチェックを外す

4. Docker Desktop を再起動

この状態では WSL 経由での連携はできませんが、Docker コンテナの起動自体は可能で、開発作業も継続できることが確認できました。

・Windows 側(cmd、PowerShell、VSCode など)から docker CLI の利用は可能

・Vue.js プロジェクトのビルドも問題なし

→ただし、WSL(Ubuntu)内では docker コマンドが使用できません。

恒久的な対処:WSL バージョンを 2 にアップグレード

より根本的な解決策として、Ubuntu を WSL 1 → WSL 2 にアップグレードすることにしました。これは再インストール不要で、次のコマンドでアップグレード可能です:

wsl –set-version Ubuntu 2

変換後に再び Docker Desktop の設定画面へ行き、

Settings > Resources > WSL Integration にて
「Enable integration with my default WSL distro」にチェックを入れ直して保存。

この後は、エラーも表示されず、WSL との連携も正常に復旧しました。

同じようなエラーに遭遇した方の参考になれば幸いです。


参考リンク:
WSL 2 へのアップグレード方法(Microsoft)
https://learn.microsoft.com/ja-jp/windows/wsl/install


木曜日担当:nishida



iPhoneでマイナンバーカード

昨日6月24日からiOS18.5以降を搭載するiPhoneに
マイナンバーカードを登録できるようになったそうです。

続きを読む

Laravelの定数管理方法

今回は、Laravelにおける定数の管理方法を紹介したいと思います。
各方法とその特徴、用途を以下にまとめます。

.env ファイルを使用する方法(環境変数)

環境ごとに異なる値(APIキー、DB接続情報など)を .env ファイルで管理します。

使用例

API_KEY=abcd1234

コントローラ内などで以下のように使用します。

$apiKey = env('API_KEY');

特徴
環境ごとに値を切り替えやすい(本番・開発など)
APIパスワードなどセキュアな情報をコードにハードコーディングせずにenvファイルに記述をおこない、gitignoreでコミット対象からも除外しておく。
キャッシュされないので変更が即時反映される

config/const.php ファイルを使う方法

独自の設定ファイルを config/const.php のように作成し、アプリ全体で共有したい定数を定義する。

例:config/const.php


return [
    'status' => [
        'active' => 1,
        'inactive' => 0,
        'deleted' => -1,
    ],
    'user_roles' => [
        'admin' => 1,
        'user' => 2,
    ],
];

使用方法:

$status = config('const.status.active'); // 1

特徴
アプリ内の定数をまとめて管理できる
配列構造で柔軟に対応できる
Laravelの php artisan config:cache によって高速アクセスが可能

define() 関数で定義(グローバル定数)

例:
define(‘APP_VERSION’, ‘1.0.0’);

使用方法:
echo APP_VERSION;

特徴・注意点
グローバルスコープで使用できる
Laravelでは基本的に config や env で管理することが多い

Enum を使う(PHP 8.1以上)

概要
PHP 8.1以降で導入された enum を使って型安全な定数を定義できる。

例:
app/Enums/UserStatus.php


enum UserStatus: int {
    case Active = 1;
    case Inactive = 0;
    case Deleted = -1;
}

使用方法:

$status = UserStatus::Active;

特徴
型安全(間違った値の代入を防げる)

木曜日担当:nishida



スマホでローカルLLM-2

先週の記事でスマホ上でローカルLLMを試す内容の記事を書きましたが、
Googleからも同じようなアプリがリリースされました。
Google AI Edge Gallery というもので、
現在はAndroid向けにのみ提供されています。

続きを読む

アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム