Open5

ブラウザで動くMySQL学習サイトを作るログ

わかわか

Linuxのイメージを作る

  1. Buildrootを使用してLinuxのイメージを作る

    • apt-getとかをローカルでしたくないのでDockerでどっかーんする(とても時間がかかる)

      # ベースイメージ
      FROM ubuntu:latest
      
      # 必要なパッケージのインストール
      RUN apt-get update && apt-get install -y \
          build-essential \
          git \
          wget \
          python3 \
          unzip \
          cpio \
          rsync \
          file \
          bc \
          libncurses-dev \
          && rm -rf /var/lib/apt/lists/*
      
      # 作業ディレクトリを設定
      WORKDIR /workspace
      
      # Buildrootのダウンロード
      RUN git clone https://github.com/buildroot/buildroot.git
      
      # デフォルトの構成ファイルを使用してビルド
      WORKDIR /workspace/buildroot
      RUN make qemu_x86_defconfig && make
      
      # コンテナのエントリポイント
      CMD ["bash"]
      
  2. docker build -t buildroot-env .

  3. docker run -it --rm buildroot-env

わかわか

BuildrootにMySQLをいれる

Buildrootが古い場合

Buildrootのversion(2022.08)が古い場合はBuildrootの中にMySQLがある

  1. make menuconfig
  2. Target packages > Library > Database > mysqlを選択し、MySQLを有効化

Buildrootが新しい場合

  1. Buildrootのパッケージディレクトリに移動
    cd /workspace/buildroot/package
  2. MySQLのパッケージ用ディレクトリを作成
    mkdir mysql
    cd mysql
    
  3. MySQLのソースコードをダウンロード
    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.4.3.tar.gz
    
  4. MySQLをBuildrootに理解させる
    1. BuildrootメニューにMySQLを追加するためにConfig.inファイルを作成
      $ cat - > Config.in
      config BR2_PACKAGE_MYSQL
      bool "mysql"
      help
      MySQL is a widely used relational database management system.
      
    2. MySQLのビルド手順を指定するmysql.mkファイルを作成
      $ cat - > mysql.mk
      MYSQL_VERSION = 8.4.3
      MYSQL_SOURCE = mysql-$(MYSQL_VERSION).tar.gz
      MYSQL_SITE = https://dev.mysql.com/get/Downloads/MySQL-8.0
      MYSQL_DEPENDENCIES =
      
      $(eval $(generic-package))
      
  5. BuildrootメニューにMySQLを追加
    1. BuildrootのトップレベルConfig.inファイルを修正
    2. MySQLパッケージの選択
  6. make menuconfigでmysqlを選択
  7. make を実行しBuildrootのビルドを実行
    ビルドが完了すると、output/images/rootfs.ext2ファイルが生成され、これがMySQLを含むLinuxイメージとなる
わかわか

イメージをローカルに持ってくる

  1. コンテナIDの確認
    docker ps
    
  2. ファイルのコピー
    docker cp <コンテナID>:/workspace/buildroot/output/images/rootfs.ext2 ./rootfs.ext2
    
わかわか

v86.wasmを用意する

  1. 持ってくる
git clone https://github.com/copy/v86.git
cd v86
  1. build
    make all
    
    wgetなんてローカルにないよな.Dockerつくらなきゃ...