create-r-dockerfile
О программе
Этот навык создает оптимизированные Dockerfile для проектов на R, используя базовые образы rocker. Он управляет системными зависимостями, установкой пакетов R и интеграцией с renv, упорядочивая слои для эффективной пересборки. Используйте его при контейнеризации R-приложений, создании воспроизводимых сред или развертывании сервисов на основе R, таких как Shiny или Plumber.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/create-r-dockerfileСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
造 R Dockerfile
用 rocker 基像構 R 案 Dockerfile 含正依理。
用
- 容器化 R 應或析
- 建可重 R 境
- 部 R 基服(Shiny、Plumber、MCP server)
- 設一致發境
入
- 必:含依之 R 案(DESCRIPTION 或 renv.lock)
- 必:目(發、產、或服)
- 可:R 版(默:最新穩)
- 可:所需額系庫
行
一:擇基像
| 用 | 基像 | 寸 |
|---|---|---|
| 最小 R 行 | rocker/r-ver:4.5.0 | ~800MB |
| 含 tidyverse | rocker/tidyverse:4.5.0 | ~1.8GB |
| 含 RStudio Server | rocker/rstudio:4.5.0 | ~1.9GB |
| Shiny server | rocker/shiny-verse:4.5.0 | ~2GB |
得: 擇合案需而無冗之基像。
敗: 疑→始於 rocker/r-ver(最小)、需方加包。察 rocker-org 全像錄。
二:書 Dockerfile
FROM rocker/r-ver:4.5.0
# Install system dependencies
# Group by purpose for clarity
RUN apt-get update && apt-get install -y \
# HTTP/SSL
libcurl4-openssl-dev \
libssl-dev \
# XML processing
libxml2-dev \
# Git integration
libgit2-dev \
libssh2-1-dev \
# Graphics
libfontconfig1-dev \
libharfbuzz-dev \
libfribidi-dev \
libfreetype6-dev \
libpng-dev \
libtiff5-dev \
libjpeg-dev \
# Utilities
git \
curl \
&& rm -rf /var/lib/apt/lists/*
# Install R packages
# Order: least-changing first for cache efficiency
RUN R -e "install.packages(c( \
'remotes', \
'devtools', \
'renv' \
), repos='https://cloud.r-project.org/')"
# Set working directory
WORKDIR /workspace
# Copy renv files first (cache layer)
COPY renv.lock renv.lock
COPY renv/activate.R renv/activate.R
# Restore packages from lockfile
RUN R -e "renv::restore()"
# Copy project files
COPY . .
# Default command
CMD ["R"]
得: Dockerfile 以 docker build -t myproject . 成構。
敗: apt-get install 中敗→察包名合目發行(Debian)。renv::restore() 敗→保 renv.lock 與 renv/activate.R 復前已複。
三:建 .dockerignore
.git
.Rproj.user
.Rhistory
.RData
renv/library
renv/cache
renv/staging
docs/
*.tar.gz
得: .dockerignore 自 Docker 脈除 Git 史、IDE 檔、地 renv 庫、構品。
敗: Docker 構仍複餘檔→驗 .dockerignore 於 Dockerfile 同目、用正 glob 模。
四:構與試
docker build -t r-project:latest .
docker run --rm -it r-project:latest R -e "sessionInfo()"
得: 容器起含正 R 版與諸可用包。sessionInfo() 出確期 R 版。
敗: 察構誌之系依誤。加缺 -dev 包於 apt-get install。
五:優為產
產部用多段構:
# Build stage
FROM rocker/r-ver:4.5.0 AS builder
RUN apt-get update && apt-get install -y libcurl4-openssl-dev libssl-dev
COPY renv.lock .
RUN R -e "install.packages('renv'); renv::restore()"
# Runtime stage
FROM rocker/r-ver:4.5.0
COPY --from=builder /usr/local/lib/R/site-library /usr/local/lib/R/site-library
COPY . /app
WORKDIR /app
CMD ["Rscript", "main.R"]
得: 多段構生小終像。行段僅含編 R 包、非構具。
敗: 行段包載敗→保 COPY --from=builder 之庫路合 R 裝包處。兩段以 R -e ".libPaths()" 察。
驗
-
docker build無誤畢 - 容器起 R 段行
- 諸需包可用
-
.dockerignore除餘檔 - 像寸合用
- 僅碼變時重構速(層快行)
忌
- 缺系依:R 含編碼之包需
-dev庫。察install.packages()誤訊 - 層快失效:諸檔於裝包前複→碼每變必失快。先複鎖檔
- 大像:
apt-get install後rm -rf /var/lib/apt/lists/*。考多段構 - 時區問:加
ENV TZ=UTC或裝tzdata為時區覺操 - 行為 root:產加非 root 用:
RUN useradd -m appuser && USER appuser
例
# Development container with mounted source
docker run --rm -it -v $(pwd):/workspace r-project:latest R
# Plumber API service
docker run -d -p 8000:8000 r-api:latest
# Shiny app
docker run -d -p 3838:3838 r-shiny:latest
參
setup-docker-compose- 調多容器containerize-mcp-server- MCP R 服專optimize-docker-build-cache- 進快策manage-renv-dependencies- renv.lock 入 Docker 構
GitHub репозиторий
Frequently asked questions
What is the create-r-dockerfile skill?
create-r-dockerfile is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform create-r-dockerfile-related tasks without extra prompting.
How do I install create-r-dockerfile?
Use the install commands on this page: add create-r-dockerfile to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does create-r-dockerfile belong to?
create-r-dockerfile is in the Meta category, tagged ai, mcp and design.
Is create-r-dockerfile free to use?
Yes. create-r-dockerfile is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Похожие навыки
Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
