@k2works/claude-code-booster 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/assets/Dockerfile +20 -3
- package/lib/assets/README.md +44 -0
- package/lib/assets/docker-compose.yml +9 -0
- package/lib/assets/flake.lock +61 -0
- package/lib/assets/flake.nix +22 -0
- package/lib/assets/ops/nix/environments/node/shell.nix +20 -0
- package/lib/assets/ops/nix/environments/python/shell.nix +19 -0
- package/lib/assets/ops/nix/shells/shell.nix +17 -0
- package/package.json +1 -1
package/lib/assets/Dockerfile
CHANGED
|
@@ -15,8 +15,6 @@ ARG USER_GID=$USER_UID
|
|
|
15
15
|
|
|
16
16
|
RUN groupadd --gid $USER_GID $USERNAME \
|
|
17
17
|
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
|
|
18
|
-
#
|
|
19
|
-
# [Optional] Add sudo support. Omit if you don't need to install software after connecting.
|
|
20
18
|
&& apt-get update \
|
|
21
19
|
&& apt-get install -y sudo \
|
|
22
20
|
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
|
|
@@ -40,9 +38,28 @@ RUN apt-get update && apt-get install -y \
|
|
|
40
38
|
wget \
|
|
41
39
|
vim \
|
|
42
40
|
tmux \
|
|
41
|
+
xz-utils \
|
|
43
42
|
&& apt-get clean \
|
|
44
43
|
&& rm -rf /var/lib/apt/lists/*
|
|
45
44
|
|
|
45
|
+
# Nixのインストール
|
|
46
|
+
ENV NIX_INSTALL_DIR=/nix
|
|
47
|
+
RUN mkdir -m 0755 $NIX_INSTALL_DIR && chown $USERNAME $NIX_INSTALL_DIR
|
|
48
|
+
USER $USERNAME
|
|
49
|
+
ENV USER=$USERNAME
|
|
50
|
+
ENV HOME=/home/$USERNAME
|
|
51
|
+
RUN curl -L https://nixos.org/nix/install | sh -s -- --no-daemon \
|
|
52
|
+
&& echo '. /home/'$USERNAME'/.nix-profile/etc/profile.d/nix.sh' >> /home/$USERNAME/.bashrc \
|
|
53
|
+
&& mkdir -p /home/$USERNAME/.config/nix \
|
|
54
|
+
&& echo "experimental-features = nix-command flakes" >> /home/$USERNAME/.config/nix/nix.conf
|
|
55
|
+
|
|
56
|
+
# Nix環境変数の設定
|
|
57
|
+
ENV PATH="/home/$USERNAME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:${PATH}" \
|
|
58
|
+
NIX_PATH="/home/$USERNAME/.nix-profile/etc/profile.d/nix.sh:/nix/var/nix/profiles/default/etc/profile.d/nix.sh" \
|
|
59
|
+
NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
|
|
60
|
+
|
|
61
|
+
USER root
|
|
62
|
+
|
|
46
63
|
# Node.jsのインストール
|
|
47
64
|
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
|
|
48
65
|
&& apt-get install -y nodejs \
|
|
@@ -65,7 +82,7 @@ RUN npm install -g @google/gemini-cli
|
|
|
65
82
|
RUN npm install -g @anthropic-ai/claude-code
|
|
66
83
|
|
|
67
84
|
# Copilot CLIのインストール
|
|
68
|
-
RUN
|
|
85
|
+
RUN npm install -g @github/copilot
|
|
69
86
|
|
|
70
87
|
# すべてのインストールが完了した後、ユーザーのホームディレクトリの所有権を確保
|
|
71
88
|
RUN chown -R $USERNAME:$USERNAME /home/$USERNAME
|
package/lib/assets/README.md
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
- [構築](#構築)
|
|
16
16
|
- [配置](#配置)
|
|
17
17
|
- [運用](#運用)
|
|
18
|
+
- [Nix による開発環境](#nix-による開発環境)
|
|
18
19
|
- [開発](#開発)
|
|
19
20
|
|
|
20
21
|
## 詳細
|
|
@@ -162,6 +163,13 @@ docker pull ghcr.io/k2works/{project_name}:0.0.1
|
|
|
162
163
|
docker run -it -v $(pwd):/srv ghcr.io/k2works/{project_name}:latest
|
|
163
164
|
```
|
|
164
165
|
|
|
166
|
+
または、docker-compose を使用してローカルでビルド・実行することもできます:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# 開発環境を起動して中に入る
|
|
170
|
+
docker-compose run --rm dev bash
|
|
171
|
+
```
|
|
172
|
+
|
|
165
173
|
認証が必要な場合は、以下のコマンドでログインします:
|
|
166
174
|
|
|
167
175
|
```bash
|
|
@@ -183,6 +191,42 @@ VS Code で Dev Container を使用する場合:
|
|
|
183
191
|
|
|
184
192
|
**[⬆ back to top](#構成)**
|
|
185
193
|
|
|
194
|
+
### Nix による開発環境
|
|
195
|
+
|
|
196
|
+
Nix を使用して、再現可能な開発環境を構築できます。
|
|
197
|
+
|
|
198
|
+
#### 準備
|
|
199
|
+
|
|
200
|
+
1. [Nix をインストール](https://nixos.org/download.html)します。
|
|
201
|
+
2. Flakes を有効にします(`~/.config/nix/nix.conf` に `experimental-features = nix-command flakes` を追加)。
|
|
202
|
+
|
|
203
|
+
#### 環境の利用
|
|
204
|
+
|
|
205
|
+
- **デフォルト環境(共通ツール)に入る:**
|
|
206
|
+
```bash
|
|
207
|
+
nix develop
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
- **Node.js 環境に入る:**
|
|
211
|
+
```bash
|
|
212
|
+
nix develop .#node
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
- **Python/MkDocs 環境に入る:**
|
|
216
|
+
```bash
|
|
217
|
+
nix develop .#python
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
環境から抜けるには `exit` を入力します。
|
|
221
|
+
|
|
222
|
+
#### 依存関係の更新
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
nix flake update
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**[⬆ back to top](#構成)**
|
|
229
|
+
|
|
186
230
|
### 開発
|
|
187
231
|
|
|
188
232
|
**[⬆ back to top](#構成)**
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"nodes": {
|
|
3
|
+
"flake-utils": {
|
|
4
|
+
"inputs": {
|
|
5
|
+
"systems": "systems"
|
|
6
|
+
},
|
|
7
|
+
"locked": {
|
|
8
|
+
"lastModified": 1731533236,
|
|
9
|
+
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
10
|
+
"owner": "numtide",
|
|
11
|
+
"repo": "flake-utils",
|
|
12
|
+
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
13
|
+
"type": "github"
|
|
14
|
+
},
|
|
15
|
+
"original": {
|
|
16
|
+
"owner": "numtide",
|
|
17
|
+
"repo": "flake-utils",
|
|
18
|
+
"type": "github"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"nixpkgs": {
|
|
22
|
+
"locked": {
|
|
23
|
+
"lastModified": 1767640445,
|
|
24
|
+
"narHash": "sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i+bwD6XxMb8A=",
|
|
25
|
+
"owner": "nixos",
|
|
26
|
+
"repo": "nixpkgs",
|
|
27
|
+
"rev": "9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5",
|
|
28
|
+
"type": "github"
|
|
29
|
+
},
|
|
30
|
+
"original": {
|
|
31
|
+
"owner": "nixos",
|
|
32
|
+
"ref": "nixos-unstable",
|
|
33
|
+
"repo": "nixpkgs",
|
|
34
|
+
"type": "github"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"root": {
|
|
38
|
+
"inputs": {
|
|
39
|
+
"flake-utils": "flake-utils",
|
|
40
|
+
"nixpkgs": "nixpkgs"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"systems": {
|
|
44
|
+
"locked": {
|
|
45
|
+
"lastModified": 1681028828,
|
|
46
|
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
47
|
+
"owner": "nix-systems",
|
|
48
|
+
"repo": "default",
|
|
49
|
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
50
|
+
"type": "github"
|
|
51
|
+
},
|
|
52
|
+
"original": {
|
|
53
|
+
"owner": "nix-systems",
|
|
54
|
+
"repo": "default",
|
|
55
|
+
"type": "github"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"root": "root",
|
|
60
|
+
"version": 7
|
|
61
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
description = "Development environments managed with Nix for claude-code-booster assets";
|
|
3
|
+
|
|
4
|
+
inputs = {
|
|
5
|
+
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
6
|
+
flake-utils.url = "github:numtide/flake-utils";
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
outputs = { self, nixpkgs, flake-utils }:
|
|
10
|
+
flake-utils.lib.eachDefaultSystem (system:
|
|
11
|
+
let
|
|
12
|
+
packages = nixpkgs.legacyPackages.${system};
|
|
13
|
+
in
|
|
14
|
+
{
|
|
15
|
+
devShells = {
|
|
16
|
+
default = import ./ops/nix/shells/shell.nix { inherit packages; };
|
|
17
|
+
node = import ./ops/nix/environments/node/shell.nix { inherit packages; };
|
|
18
|
+
python = import ./ops/nix/environments/python/shell.nix { inherit packages; };
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{ packages ? import <nixpkgs> {} }:
|
|
2
|
+
let
|
|
3
|
+
baseShell = import ../../shells/shell.nix { inherit packages; };
|
|
4
|
+
in
|
|
5
|
+
packages.mkShell {
|
|
6
|
+
inherit (baseShell) pure;
|
|
7
|
+
buildInputs = baseShell.buildInputs ++ (with packages; [
|
|
8
|
+
nodejs_22
|
|
9
|
+
nodePackages.npm
|
|
10
|
+
nodePackages.yarn
|
|
11
|
+
# AI tools
|
|
12
|
+
nodePackages."@anthropic-ai/claude-code"
|
|
13
|
+
# Note: gemini-cli and copilot CLI might not be in standard nixpkgs under these names
|
|
14
|
+
# or might need specific versions. Using what's typically available.
|
|
15
|
+
]);
|
|
16
|
+
shellHook = ''
|
|
17
|
+
${baseShell.shellHook}
|
|
18
|
+
echo "Node.js development environment activated"
|
|
19
|
+
'';
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{ packages ? import <nixpkgs> {} }:
|
|
2
|
+
let
|
|
3
|
+
baseShell = import ../../shells/shell.nix { inherit packages; };
|
|
4
|
+
in
|
|
5
|
+
packages.mkShell {
|
|
6
|
+
inherit (baseShell) pure;
|
|
7
|
+
buildInputs = baseShell.buildInputs ++ (with packages; [
|
|
8
|
+
(python3.withPackages (ps: with ps; [
|
|
9
|
+
mkdocs
|
|
10
|
+
mkdocs-material
|
|
11
|
+
pymdown-extensions
|
|
12
|
+
# plantuml-markdown and others might need to be checked if available
|
|
13
|
+
]))
|
|
14
|
+
]);
|
|
15
|
+
shellHook = ''
|
|
16
|
+
${baseShell.shellHook}
|
|
17
|
+
echo "Python/MkDocs development environment activated"
|
|
18
|
+
'';
|
|
19
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{ packages ? import <nixpkgs> {} }:
|
|
2
|
+
packages.mkShell {
|
|
3
|
+
buildInputs = with packages; [
|
|
4
|
+
git
|
|
5
|
+
curl
|
|
6
|
+
wget
|
|
7
|
+
vim
|
|
8
|
+
tmux
|
|
9
|
+
zip
|
|
10
|
+
unzip
|
|
11
|
+
];
|
|
12
|
+
# ホスト環境から完全に分離する
|
|
13
|
+
pure = true;
|
|
14
|
+
shellHook = ''
|
|
15
|
+
echo "Welcome to the common development environment"
|
|
16
|
+
'';
|
|
17
|
+
}
|