「他人のdotfilesをちょっと試してみたいけど、環境を汚したくないからやらない」、こういうこと、めっちゃありますよね。僕はあるので進めますね。コレを解消できないかと考えてたんですが、「Dockerイメージをビルドすれば良いじゃん」って気づいたのでやり方の紹介です。
dotfilesをプレビューする
実際にDockerイメージを作ったので、以下のコマンドで僕のdotfilesをプレビューできます↓
docker run -it --rm ghcr.io/pandanoir/dotfiles-preview
DockerイメージをGitHub Actionsでビルドする
GitHubにはコンテナレジストリがあります (ghcr.io)。GH Actionsでここにビルド&プッシュすればGitHubで全部完結させられます。フローはこんな感じ↓
on: push: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: docker/setup-buildx-action@v3 # マルチプラットフォーム向けビルドのためにbuildxをセットアップ - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - uses: docker/build-push-action@v6 with: push: true file: ./preview.dockerfile platforms: linux/amd64,linux/arm64 tags: ghcr.io/${{ github.repository_owner }}/dotfiles-preview:latest
あとはpreview.dockerfileを書けばOK
# neovimでlanguage serverのインストール時にnpmを使いたいのでnodeイメージを使用 FROM node:24-slim # 自分の環境で使ってる各種ツールをインストール RUN apt update && \ apt install -y zsh git curl fzf unzip gcc && \ rm -rf /var/lib/apt/lists/* RUN curl -sS https://starship.rs/install.sh | sh -s -- --yes RUN curl -fsSL https://deno.land/x/install/install.sh | sh # 最新ビルドのneovimをインストール RUN if [ "$(uname -m)" = "x86_64" ]; then ARCH="linux-x86_64"; else ARCH="linux-arm64"; fi && \ curl -LO https://github.com/neovim/neovim/releases/download/stable/nvim-${ARCH}.tar.gz && \ tar xzf nvim-${ARCH}.tar.gz && \ rm nvim-${ARCH}.tar.gz && \ mkdir -p /root/local && mv nvim-${ARCH} /root/local/nvim COPY . /root/dotfiles WORKDIR /root/dotfiles RUN ./install.sh CMD ["/bin/zsh"]
おわり
みんなもDockerイメージを作って配布してくれ。いっぱい試したいので。