Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Real World Nix CI/CD編
Search
asa1984
March 09, 2025
Technology
720
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Real World Nix CI/CD編
Nix meetup #2 の飛び入り LT に登壇した際のスライド
asa1984
March 09, 2025
More Decks by asa1984
See All by asa1984
Effect-TS をなぜ採用し、なぜ継続できたか? / Why Effect-TS? And why do we keep using it?
asa1984
2
690
Real World Effect-TS: 堅牢なプロダクトを型で組み上げる
asa1984
2
740
Nix入門パラダイム編
asa1984
6
1.7k
Other Decks in Technology
See All in Technology
AIQAのナレッジ構築について
qatonchan
1
130
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
1
240
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
1
150
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
180
数値で見る Microsoft MVP 〜Spec Kit と GitHub Copilot Agent で作るデータ可視化ダッシュボード〜
yutakaosada
0
180
Escolhendo LLMs na Prática: Lições Reais em Busca Agêntica no Mercado Livre —TDC 2026 Floripa
jpbonson
0
110
Retriever と Reranker、結局どうする?
kazuaki
1
510
現場をAIで動かす「フィジカル AI」の組み込み設計の考え方【SORACOM Discovery 2026】
soracom
PRO
0
150
検索技術知識0のエンジニアが広告検索システムを内製化して運用するまで
lycorptech_jp
PRO
0
170
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
440
データ活用研修 問いの発見と仮説構築【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
690
1台から試せる!Edge IoTを使った位置情報の活用設計【SORACOM Discovery 2026】
soracom
PRO
0
110
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Google's AI Overviews - The New Search
badams
0
1.1k
Context Engineering - Making Every Token Count
addyosmani
9
1k
A designer walks into a library…
pauljervisheath
211
24k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Visualization
eitanlees
152
17k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
The SEO Collaboration Effect
kristinabergwall1
1
510
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Designing Experiences People Love
moore
143
24k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Transcript
Real World Nix CI/CD編 asa1984
asa1984 - 名前の読み方: アサヒ - Asahi (本名) + ジョージ・オーウェル『1984』 -
自称 Web フロントエンドエンジニア 所属 - 仙台高専ロボティクスコース (2020 ~ 2025-03) - ??? 2
asa1984 - 名前の読み方: アサヒ - Asahi (本名) + ジョージ・オーウェル『1984』 -
自称 Web フロントエンドエンジニア 所属 - 仙台高専ロボティクスコース (2020 ~ 2025-03) - HERP (2025-04~) - スタートアップの HR Tech - Nix をプロダクションで利用している超おもしろ企業 3
報告 就職しました 1. Nix meetup #1 に参加 (2024-10) 2. 懇親会で
HERP の方にインターンを紹介される 3. インターン参加 (2024-12) 4. 入社 (2025-04 予定) 4
報告 就職しました 1. Nix meetup #1 に参加 (2024-10) 2. 懇親会で
HERP の方にインターンを紹介される 3. インターン参加 (2024-12) 4. 入社 (2025-04 予定) Nix meetup 運営の皆様、ありがとうございます!!! 5
本編 → 6 ← 余談
Real World Nix CI/CD編 asa1984
Real World で Nix を CI/CD 編 に 利用する話 asa1984
- 全部 Nix - home-manager - NixOS (Desktop) 9 -
devShell - CI/CD - NixOS (Infra) DARK SIDE LIGHT SIDE プロダクション に投入可能 ギーク向け
CI/CD に Nix を用いるメリット - 開発環境と CI 環境のツールの統一 - devShell
を使えば簡単に同じツールを導入できる - デプロイ時間の短縮 - バイナリキャッシュを利用できる - IaaC としての性質 - 再現性・宣言的 10
基本 - devShell / pkgs.buildEnv - CI 環境への Nix 導入
11
1. devShell を用意する - まずは開発環境をセットアッ プしよう - flake.nix で devShell
を定義 - nix develop で起動 - nix-direnv を使うともっと 体験が良い 12
2. CI 用パッケージを用意する - CI で使うパッケージを定義 - pkgs.buildEnv - 複数のパッケージをまとめ
て1つのパッケージにするこ とができる 13
2. CI 用パッケージを用意する - CI で使うパッケージを定義 - pkgs.buildEnv - 複数のパッケージをまとめ
て1つのパッケージにするこ とができる Q. devShell 使わないの? A. Workflow でシェルを起動 してはいけない (1敗) 14
3. CI 環境に Nix を導入する GitHub Actions の場合 - DeterminateSystems/nix-installer-action
- cachix/install-nix-action - etc… 上2つのどちらかを使えば OK 15
4. パッケージをインストールする - nix profile install .#ci - nix profile
の使い所 - packages.ci をグローバルインストールする あとは普通の CI と同様にコマンドを使えるので OK 16
応用 - バイナリキャッシュ - Docker イメージ - self-hosted runner 17
バイナリキャッシュ on CI Nixpkgs はバイナリキャッシュがあるが… - 当然ダウンロードに時間はかかる - 自前ビルドしている場合は尚更 18
バイナリキャッシュ on CI Nixpkgs はバイナリキャッシュがあるが… - 当然ダウンロードに時間はかかる - 自前ビルドしている場合は尚更 CI
環境限定のバイナリキャッシュを作る - ローカルバイナリキャッシュストア - GitHub Actions Cache API - nix copy 参照: asa1984/infra/.github/actions/binary-cache/action.yaml 19
バイナリキャッシュ on デプロイ - デプロイ対象が Nix でビル ドされているならバイナリ キャッシュを利用できる -
Nix が想定している利用方法 (Nix meetup #1「Nix入門: パラダイム編」参照) 20 Supabase の例
Docker with Nix pkgs.dockerTools.buildImage - Docker image をビルドする関数 - 必要なものだけが入ったミニマルイメージができる
- distroless より小さくできる - 同様に self-hosted runner もビルド可能 - pkgs.github-runner 21
追記: お役立ちリンク - github:asa1984/infra - https://github.com/asa1984/infra - バイナリキャッシュを作ろう - https://zenn.dev/asa1984/articles/make-a-binary-cache
- Nix is a better Docker image builder than Docker's image builder - https://xeiaso.net/talks/2024/nix-docker-build 22