{"id":31065761,"url":"https://github.com/henriqueslab/docker-rxiv-maker","last_synced_at":"2025-09-15T16:57:05.940Z","repository":{"id":312266765,"uuid":"1043608863","full_name":"HenriquesLab/docker-rxiv-maker","owner":"HenriquesLab","description":"Docker image building infrastructure for rxiv-maker with weekly and on-demand builds","archived":false,"fork":false,"pushed_at":"2025-09-08T16:46:08.000Z","size":192,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-08T18:09:13.492Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HenriquesLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-24T08:22:49.000Z","updated_at":"2025-09-08T16:46:11.000Z","dependencies_parsed_at":"2025-08-29T15:47:51.562Z","dependency_job_id":"35abd52a-6144-4486-8d38-324c8ecfe626","html_url":"https://github.com/HenriquesLab/docker-rxiv-maker","commit_stats":null,"previous_names":["henriqueslab/docker-rxiv-maker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HenriquesLab/docker-rxiv-maker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HenriquesLab%2Fdocker-rxiv-maker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HenriquesLab%2Fdocker-rxiv-maker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HenriquesLab%2Fdocker-rxiv-maker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HenriquesLab%2Fdocker-rxiv-maker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HenriquesLab","download_url":"https://codeload.github.com/HenriquesLab/docker-rxiv-maker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HenriquesLab%2Fdocker-rxiv-maker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275289710,"owners_count":25438494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-15T02:00:09.272Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-15T16:57:03.701Z","updated_at":"2025-09-15T16:57:05.930Z","avatar_url":"https://github.com/HenriquesLab.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker Infrastructure for Rxiv-Maker\n\nDocker image building infrastructure for rxiv-maker with **pre-installed rxiv-maker via UV** for direct terminal usage.\n\n## 🆕 NEW POLICY: Pre-installed Terminal-Focused Architecture\n\n**MAJOR CHANGE**: We have shifted from runtime dependency injection to **pre-installed rxiv-maker** during Docker build time.\n\n### Key Changes:\n- ✅ **rxiv-maker pre-installed via UV** during Docker build\n- ✅ **Direct terminal usage** - no runtime installation needed\n- ✅ **Faster startup** - immediate rxiv-maker availability\n- ✅ **Consistent versions** - locked at build time\n- ❌ **No more runtime dependency injection** (old approach deprecated)\n\n## Build Schedule\n\n- **Weekly Builds**: Every Monday at 2 AM UTC with latest rxiv-maker version\n- **On-Demand Builds**: Manual workflow dispatch for testing and hotfixes  \n- **Release Builds**: Triggered by main rxiv-maker releases with version tags\n\n## Repository Structure\n\n```\ndocker-rxiv-maker/\n├── .github/\n│   ├── workflows/\n│   │   ├── build-weekly.yml      # Weekly scheduled builds\n│   │   ├── build-on-demand.yml   # Manual trigger builds\n│   │   └── build-release.yml     # Release-triggered builds\n│   └── scripts/\n│       └── builder.py            # Docker build automation\n├── images/\n│   └── base/                     # Base Docker images\n│       ├── Dockerfile            # NEW: UV pre-installation Dockerfile\n│       ├── build.sh              # Build script\n│       └── Makefile              # Management commands\n├── scripts/                      # NEW: Terminal-focused helper scripts\n│   ├── workspace-setup.sh        # Interactive workspace setup\n│   └── usage.sh                  # Usage instructions\n├── docs/                         # Documentation\n└── tests/                        # Build verification tests\n```\n\n## Image Details\n\n### Base Images (`images/base/`)\n- **Repository**: `henriqueslab/rxiv-maker-base`\n- **Tags**: `latest`, `v2.5.x` (new versioning for UV-based images)\n- **Architecture**: AMD64, ARM64 (native performance)\n- **Purpose**: Production-ready images with **pre-installed rxiv-maker via UV**\n- **Features**: \n  - ✅ rxiv-maker ready for immediate use\n  - ✅ Complete LaTeX distribution (TeX Live)\n  - ✅ Python 3.11 with scientific libraries\n  - ✅ R with graphics packages  \n  - ✅ Mermaid.ink API integration\n  - ✅ No browser dependencies\n  - ✅ Optimized image size\n\n## 🚀 Quick Start (NEW TERMINAL-FOCUSED WORKFLOW)\n\n### Interactive Terminal Usage (Recommended)\n\n**NEW**: Start an interactive terminal session and use rxiv-maker directly:\n\n```bash\n# Start interactive container with your manuscript\ndocker run -it --rm -v $(pwd):/workspace henriqueslab/rxiv-maker-base:latest\n\n# Inside container: Use rxiv-maker directly (pre-installed!)\nrxiv pdf ./my-manuscript/\nrxiv validate ./my-manuscript/  \nrxiv --help\n\n# Optional: Set up workspace structure  \nworkspace-setup.sh\n```\n\n### Direct Command Execution\n\n**NEW**: Run rxiv-maker commands directly without interactive shell:\n\n```bash\n# Generate PDF (one command)\ndocker run --rm -v $(pwd):/workspace henriqueslab/rxiv-maker-base:latest rxiv pdf .\n\n# Validate manuscript (one command)  \ndocker run --rm -v $(pwd):/workspace henriqueslab/rxiv-maker-base:latest rxiv validate .\n\n# View usage instructions\ndocker run --rm henriqueslab/rxiv-maker-base:latest usage.sh\n```\n\n### Helper Scripts (Available in Container)\n\n```bash\n# Inside container - helper scripts available globally:\nusage.sh                 # Usage instructions\nworkspace-setup.sh       # Interactive workspace setup\nrxiv --version           # Check pre-installed version\n```\n\n## 🔄 Migration from Old Architecture\n\nIf you were using the old \"runtime dependency injection\" approach:\n\n### OLD (Deprecated):\n```bash\n# OLD: Runtime dependency injection approach\ndocker run -it --rm -v $(pwd):/workspace henriqueslab/rxiv-maker-base:latest dev-mode.sh\ndocker run --rm -v $(pwd):/workspace henriqueslab/rxiv-maker-base:latest install-project-deps.sh\n```\n\n### NEW (Current):\n```bash  \n# NEW: Direct terminal usage (rxiv-maker pre-installed)\ndocker run -it --rm -v $(pwd):/workspace henriqueslab/rxiv-maker-base:latest\n# Then inside container: rxiv pdf ./my-manuscript/\n```\n\n## Benefits of New Architecture\n\n| Aspect | OLD (Runtime Injection) | NEW (Pre-installed) |\n|--------|------------------------|-------------------|\n| **Startup Time** | ~30-60s (dependency installation) | ~2-3s (immediate) |\n| **Reliability** | Depends on PyPI availability | Pre-built, always works |\n| **Version Consistency** | Runtime variations possible | Locked at build time |\n| **Offline Usage** | Requires internet for first run | Works completely offline |\n| **Usage Complexity** | Requires setup scripts | Direct rxiv commands |\n\n## Docker Image Building\n\n### Local Development\n```bash\n# Build new UV-based image locally\ncd images/base\n./build.sh                      # Build for local development\n./build.sh --push              # Build and push to registry\n```\n\n### Build Configuration\n- Uses **UV for rxiv-maker installation** during build time\n- Includes terminal-focused helper scripts\n- Optimized for immediate terminal usage\n- No runtime dependency installation needed\n\n## Troubleshooting\n\n### Common Issues\n\n**Problem**: \"rxiv command not found\"\n**Solution**: You may be using an old image. Pull latest: `docker pull henriqueslab/rxiv-maker-base:latest`\n\n**Problem**: Scripts not found (workspace-setup.sh, usage.sh)  \n**Solution**: These are included in images v2.5.0+. Update your image.\n\n**Problem**: Looking for old dev-mode.sh or install-project-deps.sh\n**Solution**: These are deprecated. Use the new direct terminal approach.\n\n## Backwards Compatibility\n\n- **Images v2.4.x and earlier**: Used APT + runtime dependency injection\n- **Images v2.5.x and later**: Use UV + pre-installation (current)\n- **Migration**: Update your workflows to use direct rxiv commands instead of setup scripts\n\n## Documentation\n\n- [Usage Instructions](scripts/usage.sh) - Available in container\n- [Workspace Setup](scripts/workspace-setup.sh) - Available in container  \n- [Build Process](docs/) - Technical documentation\n\n---\n\n**Architecture Version**: v2.5.0-uv-preinstalled  \n**Last Updated**: September 2025  \n**Breaking Change**: Yes - migrated from runtime injection to pre-installation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenriqueslab%2Fdocker-rxiv-maker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenriqueslab%2Fdocker-rxiv-maker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenriqueslab%2Fdocker-rxiv-maker/lists"}