This repository contains a Dockerfile for creating a base image with Calibre and Node.js pre-installed. This image is built on top of Ubuntu 24.04 and includes all necessary dependencies for running Calibre for e-book management and conversion.
- Ubuntu 24.04: The base image is built on the latest LTS version of Ubuntu.
- Multi-Architecture Support: Built for both
linux/amd64andlinux/arm64platforms. - Calibre: Pre-installed for e-book management and conversion.
- Node.js 24: Latest LTS version from NodeSource.
This image is built for multiple architectures:
- linux/amd64 - For x86_64 systems
- linux/arm64 - For ARM64 systems (e.g., Apple Silicon, AWS Graviton)
Docker will automatically pull the correct image for your platform. You can also explicitly specify the platform:
docker run --platform linux/amd64 athrvk/calibre-node-base
docker run --platform linux/arm64 athrvk/calibre-node-baseTo pull the latest multi-arch image from Docker Hub:
docker pull athrvk/calibre-node-base:latestTo build the Docker image locally for your platform:
docker build -t calibre-node-base .To build for a specific platform or multiple platforms:
# Build for amd64
docker buildx build --platform linux/amd64 -t calibre-node-base:amd64 .
# Build for arm64
docker buildx build --platform linux/arm64 -t calibre-node-base:arm64 .
# Build for both platforms
docker buildx build --platform linux/amd64,linux/arm64 -t calibre-node-base:latest .To run a container using the built image:
docker run -it --rm athrvk/calibre-node-baseTo use the image as a base for another Dockerfile, include the following line at the top of the file:
FROM athrvk/calibre-node-base:latestThe Dockerfile installs the following packages and dependencies:
- System utilities:
wget,curl,xz-utils,gnupg - Calibre: E-book management and conversion tool (from calibre's official installer, tracking upstream releases)
- Node.js 24: Latest LTS version from NodeSource
- npm: Latest version of npm package manager
Verify the installations of Calibre and Node.js:
# Calibre version
docker run --rm athrvk/calibre-node-base ebook-convert --version
# Node.js version
docker run --rm athrvk/calibre-node-base node -v
# npm version
docker run --rm athrvk/calibre-node-base npm -vThis image is automatically built and pushed to Docker Hub via GitHub Actions whenever changes are pushed to the main/master branch. The workflow:
- Sets up QEMU for multi-architecture emulation
- Configures Docker Buildx for multi-platform builds
- Builds images for both linux/amd64 and linux/arm64
- Pushes the images to Docker Hub with version tags and
latesttag - Auto-increments the version number on successful builds
To enable auto-deployment, you need to set up the following secrets in your GitHub repository:
- Go to your repository Settings → Secrets and variables → Actions
- Add the following secrets:
DOCKER_USERNAME: Your Docker Hub usernameDOCKER_PASSWORD: Your Docker Hub password or access token
The workflow will trigger automatically on pushes to the main/master branch or can be manually triggered via the Actions tab.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
This image is maintained by athrvk.