Docker Infrastructure for Rxiv-Maker
September 29, 2025 ยท View on GitHub
Streamlined Docker build system for rxiv-maker with pre-installed rxiv-maker via UV.
๐ฏ Quick Start
Using Pre-built Images
# Interactive terminal with your manuscript
docker run -it --rm -v $(pwd):/workspace henriqueslab/rxiv-maker-base:latest
# Direct command execution
docker run --rm -v $(pwd):/workspace henriqueslab/rxiv-maker-base:latest rxiv pdf .
Building Locally
# Simple build (from images/base directory)
cd images/base && ./build.sh --local
# Build and push to registry
cd images/base && ./build.sh --tag v1.8.1
# Test existing image
./test-docker-image.sh henriqueslab/rxiv-maker-base:latest
# Or use Makefile (recommended)
cd images/base && make image-build
cd images/base && make image-push
๐๏ธ Architecture
Current (v2.5.0+): Pre-installed rxiv-maker via UV during Docker build
- โ Direct terminal usage - no runtime installation
- โ Fast startup (~3s vs 30-60s)
- โ Consistent versions locked at build time
- โ Streamlined CI - single workflow instead of 5+
๐ Repository Structure
docker-rxiv-maker/
โโโ .github/workflows/
โ โโโ docker.yml # Unified CI workflow
โ โโโ gemini-*.yml # AI assistant workflows
โโโ images/base/
โ โโโ Dockerfile # Production image definition
โ โโโ build.sh # Build script
โ โโโ Makefile # Build automation
โโโ scripts/ # Helper scripts (in container)
โโโ test-docker-image.sh # Comprehensive test suite
โโโ tests/ # Test files
โโโ LICENSE # MIT License
Migration from v2.4.x
Old (deprecated):
docker run -it --rm -v $(pwd):/workspace image:latest dev-mode.sh
Current:
docker run -it --rm -v $(pwd):/workspace image:latest
# rxiv commands work immediately
๐ง Streamlined Build System
For Developers
# Local development build
cd images/base && ./build.sh --local --platform linux/amd64
# Production build and push
cd images/base && ./build.sh --tag latest
# Test any image
./test-docker-image.sh henriqueslab/rxiv-maker-base:dev
CI/CD Workflow
Single unified workflow handles all scenarios:
- Push to main: Builds and pushes
devtag with repository source - Weekly schedule: Builds
latest+weeklytags with PyPI source - Releases: Builds
latest+ version tags with PyPI source - Manual dispatch: Flexible build options with source selection
๐ฆ Image Details
- Repository:
henriqueslab/rxiv-maker-base - Tags:
latest,dev,weekly, version tags (e.g.,v1.8.1) - Platforms: AMD64, ARM64
- Size: ~2GB (optimized)
- Contents:
- โ rxiv-maker (pre-installed via UV)
- โ TeX Live (complete LaTeX)
- โ Python 3.11 + scientific libraries
- โ R + graphics packages
- โ All system dependencies
๐ท๏ธ Tag Strategy
| Tag | rxiv-maker Source | Usage | Update Frequency |
|---|---|---|---|
latest | ๐ PyPI releases | โ Production | On GitHub releases |
dev | ๐ฆ GitHub repository | โ ๏ธ Development | On main branch pushes |
weekly | ๐ PyPI releases | ๐ Fresh packages | Every Monday 2AM UTC |
v1.8.1 | ๐ PyPI releases | ๐ Pinned version | Manual releases |
๐ Recommended Usage
# Production use (stable PyPI releases)
docker run henriqueslab/rxiv-maker-base:latest
# Development testing (latest repository code)
docker run henriqueslab/rxiv-maker-base:dev
# Weekly refreshed packages (latest security updates)
docker run henriqueslab/rxiv-maker-base:weekly
# Specific version (reproducible builds)
docker run henriqueslab/rxiv-maker-base:v1.8.1
๐ง Troubleshooting
Build failures: Check GitHub Actions logs in the unified docker.yml workflow
"rxiv command not found": Pull latest image or rebuild:
docker pull henriqueslab/rxiv-maker-base:latest
Local build issues: Use the build script or Makefile:
cd images/base && ./build.sh --help
# or
cd images/base && make help
Old workflows not working: The system has been streamlined - use the new tools above
๐ Recent Streamlining (Sept 29, 2025)
Repository Cleanup & Optimization:
- โ Eliminated redundancy - removed 15+ duplicate files
- โ Consolidated workflows - single unified Docker workflow
- โ Streamlined build tools - single source of truth (build.sh)
- โ Modernized Makefile - updated for new architecture
- โ Simplified structure - removed broken/deprecated scripts
- โ Maintained functionality - all features preserved
๐ Important Notes
Multi-Platform Support:
- AMD64 and ARM64 both supported
- ARM64 builds use QEMU (slower but necessary)
- Weekly builds refresh all packages (intentional for security)
Build Performance:
- Local builds: ~5-10 minutes (single platform)
- Multi-platform builds: ~30 minutes (Docker Hub push)
- Container startup: ~3 seconds (pre-installed rxiv-maker)
๐ง Helper Scripts
Available inside container:
workspace-setup.sh- Interactive workspace setupusage.sh- Usage instructionsrxiv --version- Check version
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Version: v2.5.0-streamlined Updated: September 29, 2025 Status: Fully Operational ๐