GitHub Codespaces で Ubuntu 24.04 LTS を利用できるようにします
動作確認環境
GitHub Codespaces
Ubuntu 20.04.6 -> 24.04.1
GitHub Codespaces は、執筆時点でデフォルトだと Ubuntu 20.04 が立ち上がります
悲しいことに Next.js の開発環境すら立ち上がりませんでした...
それに EOL も迎えていますし、Ubuntu 24.04 にアップグレードしたいと思います
GitHub Codespaces の環境の中身は Docker で動作しているようです
なので Dockerfile を用意することで好きな環境を作ることができます
まずは、プロジェクト以下に Dockerfile を作成してみましょう
ここでは .devcontainer/ ディレクトリを作って以下に配置します
FROM ubuntu:24.04RUN apt update \&& apt -y install locales \&& localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 \&& apt install -y vim less fontconfig git curl swig sudo sqlite3ENV LANG=ja_JP.UTF-8ENV LANGUAGE=ja_JP:jaENV LC_ALL=ja_JP.UTF-8ENV TZ=JST-9ENV TERM=xterm# コンテナ起動時の作業ディレクトリWORKDIR /app# デフォルトコマンドCMD [ "sleep", "infinity" ]
次に GitHub Codespaces の環境設定ファイルを作成します
.devcontainer/devcontainer.json を作成し、以下の内容を記述します
{"name": "Ubuntu 24.04","build": {"dockerfile": "Dockerfile","context": ".."},"forwardPorts": [],"remoteUser": "ubuntu","features": {"ghcr.io/devcontainers/features/node:1": {},"ghcr.io/devcontainers/features/python:1": {},"ghcr.io/devcontainers/features/git:1": {}},"overrideCommand": false,"postCreateCommand": "apt-get update && apt-get install -y build-essential curl wget git vim unzip zip htop jq tmux sudo software-properties-common apt-transport-https ca-certificates gnupg"}
ファイル名に注意
私は .devcontainer/.devcontainer.json というコロン付きのファイルを作成して、見事に数時間持っていかれました...
ビルドはされますが、環境が適用されないので注意です ((罠
ちなみに features には、簡単に使用したい言語の環境を作成できます
例では Node.js と Python、Git を指定していますが、以下を参考にすると良いです
おそらくある程度新しいバージョンが高速にインストールされるので、私は満足しています
そんなこんなでのリポジトリの配置はこんな感じ
.└── .devcontainer├── devcontainer.json└── Dockerfile
というわけで、最後に Codespaces を再起動してビルドすると完成です 🎉
cat /etc/os-releasePRETTY_NAME="Ubuntu 24.04.1 LTS"NAME="Ubuntu"VERSION_ID="24.04"VERSION="24.04.1 LTS (Nobel Numbat)"VERSION_CODENAME=nobelID=ubuntu...
おまけに、いつものダークモードにしたければ .vscode/settings.json に以下を追記します 🐈
{"workbench.colorTheme": "Default Dark+"}