2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Lumimerの構築手順

Last updated at Posted at 2025-05-16

Dockerをだれでも手軽にコンテナ利用できる環境構築

コンテナを用いてアプリケーションを構築・テスト・デプロイできるソフトウェアプラットフォームのDockerで、Mac向けOSであるmacOSを実行できるインターフェース「Lumier」が登場したのでやってみました。

強味

LumierはDockerコンテナを利用してmacOS仮想マシンをより簡単に、そして効率的に実行するためのツールであると言えます。

実装環境

・pc:macbook pro 13
・cpu:m2
・memory:8gb
・strage:256gb

サポートされている環境

OS macOSとLinux
仮想マシンに Docker コンテナを構築。

Lumimerの構築手順

Lumierを使うには、大きく分けて以下のステップが必要です。

前提条件

始める前に、以下の2つがあなたのMacにインストールされていることを確認してください。

  1. Docker for Apple Silicon:

    • まだインストールしていない場合は、こちらのリンクからダウンロードしてインストールしてください: [提供されたリンク]
    • インストール手順もリンク先に記載されていますので、それに従ってインストールを完了させてください。
  2. Lume (仮想化CLI):

    • ターミナルを開いて、以下のコマンドを実行してLumeをインストールします。
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"
      
    • インストール後、Lumeはバックグラウンドサービスとしてポート7777で起動します。
    • もしポート7777がすでに使用されている場合は、インストールスクリプト実行時に --port オプションを使って別のポートを指定できます。例:
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)" --port 8888
      

基本的な実行方法 (一時的なストレージ)

VMの状態を保存せずに、一時的にmacOS VMを試したい場合は、以下のコマンドをターミナルで実行します。

docker run -it --rm \
    --name macos-vm \
    -p 8006:8006 \
    -e VM_NAME=macos-vm \
    -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \
    -e CPU_CORES=4 \
    -e RAM_SIZE=8192 \
    trycua/lumier:latest
  • -it --rm: コンテナをインタラクティブに実行し、終了時に自動的に削除します。
  • --name macos-vm: 作成するコンテナに macos-vm という名前を付けます。
  • -p 8006:8006: ホストマシンのポート8006をVMのポート8006にフォワードします。これにより、WebブラウザからVMにアクセスできるようになります。
  • -e VM_NAME=macos-vm: VMの名前を macos-vm に設定します。
  • -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest: 使用するmacOSイメージを指定します。ここでは Sequoia の最新版を指定しています。
  • -e CPU_CORES=4: VMに割り当てるCPUコア数を4に設定します。
  • -e RAM_SIZE=8192: VMに割り当てるメモリサイズを8192MB (8GB) に設定します。
  • trycua/lumier:latest: 使用するLumierのDockerイメージを指定します。

このコマンドを実行後、Webブラウザ(例えば http://localhost:8006)でmacOS VMにアクセスできるはずです。

注意: この基本的な設定では、コンテナを停止するとVMの状態はリセットされ、VM内で行った変更はすべて失われます。永続的にVMの状態を保存したい場合は、次の手順に進んでください。

VMの状態を保存する方法 (永続的なストレージ)

VMの状態をセッション間で保存したい場合は、以下の手順を実行します。

  1. まず、VMのデータを保存するディレクトリを作成します。ターミナルで以下のコマンドを実行してください。

    mkdir -p storage
    
  2. 次に、永続ストレージを使用するようにDockerコンテナを実行します。

    docker run -it --rm \
        --name lumier-vm \
        -p 8006:8006 \
        -v $(pwd)/storage:/storage \
        -e VM_NAME=lumier-vm \
        -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \
        -e CPU_CORES=4 \
        -e RAM_SIZE=8192 \
        -e HOST_STORAGE_PATH=$(pwd)/storage \
        trycua/lumier:latest
    
    • -v $(pwd)/storage:/storage: ホストマシンの現在のディレクトリにある storage フォルダを、コンテナ内の /storage フォルダにマウントします。これにより、VMのデータがホストマシンに保存されます。
    • -e HOST_STORAGE_PATH=$(pwd)/storage: ホストマシンの storage フォルダのパスを環境変数としてコンテナに渡します。

これで、コンテナを停止して再起動しても、VMの状態は storage フォルダに保存され、維持されます。

ホストマシンとVM間でファイルを共有する方法

ホストマシンとVM間でファイルを共有したい場合は、共有フォルダを設定します。

  1. まず、ストレージフォルダと共有フォルダの両方を作成します。

    mkdir -p storage shared
    
  2. 次に、永続ストレージと共有フォルダの両方を使用するようにコンテナを実行します。

    docker run -it --rm \
        --name lumier-vm \
        -p 8006:8006 \
        -v $(pwd)/storage:/storage \
        -v $(pwd)/shared:/shared \
        -e VM_NAME=lumier-vm \
        -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \
        -e CPU_CORES=4 \
        -e RAM_SIZE=8192 \
        -e HOST_STORAGE_PATH=$(pwd)/storage \
        -e HOST_SHARED_PATH=$(pwd)/shared \
        trycua/lumier:latest
    
    • -v $(pwd)/shared:/shared: ホストマシンの現在のディレクトリにある shared フォルダを、コンテナ内の /shared フォルダにマウントします。
    • -e HOST_SHARED_PATH=$(pwd)/shared: ホストマシンの shared フォルダのパスを環境変数としてコンテナに渡します。

この設定により、ホストマシンの shared フォルダに置いたファイルは、VM内の /Volumes/My Shared Files フォルダからアクセスできるようになります。VM内から /Volumes/My Shared Files に保存したファイルは、ホストマシンの shared フォルダに反映されます。

起動時にスクリプトを自動実行する方法 (on-logon.sh)

VM起動時にスクリプトを自動的に実行したい場合は、shared フォルダ内の lifecycle ディレクトリに on-logon.sh という名前のスクリプトを配置します。

  1. shared フォルダ内に lifecycle ディレクトリを作成します。

    mkdir -p shared/lifecycle
    
  2. サンプルスクリプト on-logon.sh を作成します。

    cat > shared/lifecycle/on-logon.sh << 'EOF'
    #!/usr/bin/env bash
    # デスクトップにファイルを作成
    echo "Hello from Lumier!" > /Users/lume/Desktop/hello_lume.txt
    
    # 他のコマンドもここに追加できます
    # 例:
    # - 環境変数の設定
    # - アプリケーションの起動
    # - ネットワークドライブのマウント
    # - 開発環境のセットアップ
    EOF
    
  3. 作成したスクリプトに実行権限を与えます。

    chmod +x shared/lifecycle/on-logon.sh
    

これで、VMが起動するたびに on-logon.sh スクリプトが自動的に実行されます。スクリプトはVMのコンテキスト内で実行され、/Users/lume ユーザーディレクトリや /Volumes/My Shared Files (共有フォルダ) などにアクセスできます。

Docker Compose を使用する方法

Docker Compose を使うと、設定ファイルを記述することでより簡単にLumierを実行できます。

  1. docker-compose.yml という名前のファイルを作成し、以下の内容を記述します。

    version: '3'
    services:
      lumier:
        image: trycua/lumier:latest
        container_name: lumier-vm
        restart: unless-stopped
        ports:
          - "8006:8006"  # VNCアクセスのためのポート
        volumes:
          - ./storage:/storage  # VMの永続ストレージ
          - ./shared:/shared    # VM内でアクセス可能な共有フォルダ
        environment:
          - VM_NAME=lumier-vm
          - VERSION=ghcr.io/trycua/macos-sequoia-cua:latest
          - CPU_CORES=4
          - RAM_SIZE=8192
          - HOST_STORAGE_PATH=${PWD}/storage
          - HOST_SHARED_PATH=${PWD}/shared
        stop_signal: SIGINT
        stop_grace_period: 2m
    
  2. 必要なディレクトリを作成します。

    mkdir -p storage shared
    
  3. 以下のコマンドでLumierを起動します。

    docker-compose up -d
    
  4. ログを確認したい場合は、以下のコマンドを実行します。

    docker-compose logs -f
    
  5. コンテナを停止したい場合は、以下のコマンドを実行します。

    docker-compose down
    

Lumierのビルドとカスタマイズ

もしLumierコンテナをカスタマイズしたり、ソースコードからビルドしたい場合は、以下の手順を実行します。

  1. Lumierのディレクトリに移動します。

    cd libs/lumier
    
  2. Dockerイメージをローカルでビルドします。

    docker build -t lumier-custom:latest .
    
  3. カスタムビルドのイメージを使ってコンテナを実行します。

    docker run -it --rm \
        --name lumier-vm \
        -p 8006:8006 \
        -e VM_NAME=lumier-vm \
        -e VERSION=ghcr.io/trycua/macos-sequoia-cua:latest \
        -e CPU_CORES=4 \
        -e RAM_SIZE=8192 \
        lumier-custom:latest
    

カスタマイズのオプション

Dockerfile にはいくつかのカスタマイズポイントがあります。

  • ベースイメージ: デフォルトでは Debian Bullseye Slim が使われています。必要に応じて変更できます。
  • インストール済みパッケージ: apt-get install のリストにパッケージを追加または削除できます。
  • フック: /run/hooks/ ディレクトリには、VMのライフサイクルの特定の時点で実行されるスクリプトがあります。
  • 設定: /run/config/constants.sh にデフォルト設定が記述されています。

変更を加えた後、カスタムイメージをビルドしてDocker Hubにプッシュできます。

# カスタムタグでビルド
docker build -t yourusername/lumier:custom .
# Docker Hubにプッシュ (docker login 後)
docker push yourusername/lumier:custom

設定オプション

Lumierを実行する際には、いくつかの設定を行う必要があります。

  • ポートフォワーディング (-p 8006:8006): VMのVNCインターフェースをWebブラウザからアクセスできるようにします。ポート8006がすでに使用されている場合は、-p 8007:8006 のように別のポートを使用できます。

  • 環境変数 (-e): VMの設定を行います。

    • VM_NAME: 仮想マシンの名前
    • VERSION: 使用するmacOSイメージ
    • CPU_CORES: 割り当てるCPUコア数
    • RAM_SIZE: 割り当てるメモリサイズ (MB)
    • HOST_STORAGE_PATH: VMの状態を保存するホストマシンのパス (永続ストレージを使用する場合)
    • HOST_SHARED_PATH: 共有フォルダのホストマシンのパス (オプション)
  • バックグラウンドサービス: ホストマシンで lume serve サービスが実行されている必要があります (install.sh スクリプトでLumeをインストールすると自動的に起動します)。

これで、Lumierを日本語で構築し、実行するための基本的な手順と設定について理解できたかと思います。

URL

Gitリポジトリ:このURLは、LumierプロジェクトのGitHubリポジトリの一部です。具体的な内容については、検索結果から直接的な情報が得られませんでしたが、一般的にGitHubリポジトリは以下の情報を提供します。

ソースコード: Lumierを構成するコードが格納されています。
ドキュメント: プロジェクトの使い方、API、アーキテクチャなどが説明されています。
Issueトラッカー: バグ報告や機能要望が管理されています。
コントリビューションガイド: プロジェクトへの貢献方法が説明されています。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?