GitHub Codespaces 向けの開発コンテナ設定リポジトリです。R・Python・Quarto を用いたデータ分析・ドキュメント生成に特化した環境を提供します。
| ツール | 内容 |
|---|---|
| R | rocker/tidyverse ベース(R + Tidyverse + Quarto プリインストール済み) |
| Python | python3 + pip |
| Quarto | Rmarkdown・Jupyter との統合ドキュメント生成 |
| RStudio Server | ブラウザ上で RStudio を利用可能(ポート 8787) |
.
├── Dockerfile # コンテナイメージの定義
├── install.R # Rパッケージ一覧
├── requirements.txt # Pythonパッケージ一覧
├── .devcontainer/
│ └── devcontainer.json # Codespaces / Dev Containers 設定
└── .github/
└── workflows/
└── publish-docker.yml # GHCRへの自動ビルド・公開ワークフロー
install.R にパッケージ名を追記します。
install.packages(
c(
"languageserver",
"httpgd",
"renv",
"jsonlite",
"your-new-package" # ← 追加
),
repos = "http://cran.rstudio.com/"
)requirements.txt にパッケージ名を追記します。
jupyter
pandas
numpy
matplotlib
your-new-package # ← 追加
変更を main ブランチにプッシュすると、GitHub Actions が自動的に新しいイメージをビルドして GitHub Container Registry (GHCR) に公開します。
main ブランチへのプッシュをトリガーに、以下が自動実行されます。
- Dockerfile・install.R・requirements.txt を含むイメージをビルド
ghcr.io/<owner>/ccp-dev-con:latestタグで GHCR へプッシュ
初回セットアップ時の注意 GHCRに公開されたパッケージは、デフォルトで Private になっています。 Codespaces から誰でも Pull できるようにするには、リポジトリの Settings → Packages から該当パッケージを Public に変更してください。
パッケージ関連ファイルの変更時のみワークフローを実行したい場合は、
publish-docker.yml の paths フィルターのコメントを解除してください。
paths: ['Dockerfile', 'install.R', 'requirements.txt'].devcontainer/devcontainer.json はデフォルトでローカルの Dockerfile からビルドします。リポジトリを開いて Codespace を起動するとビルドが自動実行されます。
ビルド済みイメージを使うと Codespace の起動が大幅に高速化されます。 .devcontainer/devcontainer.json を以下のように編集してください。
// "build": { "dockerfile": "../Dockerfile" }, ← コメントアウト
"image": "ghcr.io/ykunisato/ccp-dev-con:latest" // ← コメント解除Codespace 起動後、ポート 8787 をブラウザで開くと RStudio Server を利用できます。
(ユーザー名: rstudio / パスワード: rstudio)
devcontainer.json により以下の拡張機能が自動インストールされます。
| 拡張機能 | 用途 |
|---|---|
| REditorSupport.r | R言語サポート(補完・シンタックスハイライト) |
| RDebugger.r-debugger | Rデバッガー |
| quarto.quarto | Quartoドキュメント編集・プレビュー |
| ms-python.python | Python言語サポート |
| ms-python.vscode-pylance | 高性能な型チェック・補完 |
| ms-toolsai.jupyter | Jupyter Notebook サポート |
| eamodio.gitlens | Git履歴・blame 表示 |
| github.vscode-pull-request-github | GitHub PR・Issue 管理 |