Production-ready Docker images featuring Python and Node.js in various combinations. Perfect for projects requiring both ecosystems.
Available on Docker Hub, GitHub Container Registry, and Quay.io.
Last updated: 2025-03-11
- Multiple version combinations: All supported Python and Node.js versions
- Multiple distributions: Debian Bookworm (default), Bullseye, Slim, and Alpine
- Multi-registry availability: Available on Docker Hub, GitHub Container Registry, and Quay.io
- Multi-architecture support: linux/amd64 and linux/arm64 (except Alpine: amd64 only)
- Thoroughly tested: Each image undergoes comprehensive testing
- Regularly updated: Automatic updates via GitHub Actions
- User-friendly: Default non-root user (
c0mpiler
) preconfigured
The latest
tag currently includes:
Component | Version |
---|---|
Python | latest |
Node.js | 22.x |
npm | 10.x |
yarn | stable |
pip | latest |
pipenv | latest |
poetry | latest |
uv | latest |
Select the specific combination of Python and Node.js versions that suits your needs:
Tag | Python version | Node.js version | Distro |
---|---|---|---|
python3.13-nodejs24 |
3.13.7 | 24.6.0 | bookworm |
python3.13-nodejs24-slim |
3.13.7 | 24.6.0 | slim |
python3.13-nodejs24-alpine |
3.13.7 | 24.6.0 | alpine |
python3.13-nodejs22 |
3.13.7 | 22.18.0 | bookworm |
python3.13-nodejs22-slim |
3.13.7 | 22.18.0 | slim |
python3.13-nodejs22-alpine |
3.13.7 | 22.18.0 | alpine |
python3.13-nodejs20 |
3.13.7 | 20.19.4 | bookworm |
python3.13-nodejs20-slim |
3.13.7 | 20.19.4 | slim |
python3.13-nodejs20-alpine |
3.13.7 | 20.19.4 | alpine |
python3.13-nodejs24-bullseye |
3.13.6 | 24.6.0 | bullseye |
python3.13-nodejs22-bullseye |
3.13.6 | 22.18.0 | bullseye |
python3.13-nodejs20-bullseye |
3.13.6 | 20.19.4 | bullseye |
python3.12-nodejs24 |
3.12.11 | 24.6.0 | bookworm |
python3.12-nodejs24-bullseye |
3.12.11 | 24.6.0 | bullseye |
python3.12-nodejs24-slim |
3.12.11 | 24.6.0 | slim |
python3.12-nodejs24-alpine |
3.12.11 | 24.6.0 | alpine |
python3.12-nodejs22 |
3.12.11 | 22.18.0 | bookworm |
python3.12-nodejs22-bullseye |
3.12.11 | 22.18.0 | bullseye |
python3.12-nodejs22-slim |
3.12.11 | 22.18.0 | slim |
python3.12-nodejs22-alpine |
3.12.11 | 22.18.0 | alpine |
python3.12-nodejs20 |
3.12.11 | 20.19.4 | bookworm |
python3.12-nodejs20-bullseye |
3.12.11 | 20.19.4 | bullseye |
python3.12-nodejs20-slim |
3.12.11 | 20.19.4 | slim |
python3.12-nodejs20-alpine |
3.12.11 | 20.19.4 | alpine |
python3.11-nodejs24 |
3.11.13 | 24.6.0 | bookworm |
python3.11-nodejs24-bullseye |
3.11.13 | 24.6.0 | bullseye |
python3.11-nodejs24-slim |
3.11.13 | 24.6.0 | slim |
python3.11-nodejs24-alpine |
3.11.13 | 24.6.0 | alpine |
python3.11-nodejs22 |
3.11.13 | 22.18.0 | bookworm |
python3.11-nodejs22-bullseye |
3.11.13 | 22.18.0 | bullseye |
python3.11-nodejs22-slim |
3.11.13 | 22.18.0 | slim |
python3.11-nodejs22-alpine |
3.11.13 | 22.18.0 | alpine |
python3.11-nodejs20 |
3.11.13 | 20.19.4 | bookworm |
python3.11-nodejs20-bullseye |
3.11.13 | 20.19.4 | bullseye |
python3.11-nodejs20-slim |
3.11.13 | 20.19.4 | slim |
python3.11-nodejs20-alpine |
3.11.13 | 20.19.4 | alpine |
python3.10-nodejs24 |
3.10.18 | 24.6.0 | bookworm |
python3.10-nodejs24-bullseye |
3.10.18 | 24.6.0 | bullseye |
python3.10-nodejs24-slim |
3.10.18 | 24.6.0 | slim |
python3.10-nodejs24-alpine |
3.10.18 | 24.6.0 | alpine |
python3.10-nodejs22 |
3.10.18 | 22.18.0 | bookworm |
python3.10-nodejs22-bullseye |
3.10.18 | 22.18.0 | bullseye |
python3.10-nodejs22-slim |
3.10.18 | 22.18.0 | slim |
python3.10-nodejs22-alpine |
3.10.18 | 22.18.0 | alpine |
python3.10-nodejs20 |
3.10.18 | 20.19.4 | bookworm |
python3.10-nodejs20-bullseye |
3.10.18 | 20.19.4 | bullseye |
python3.10-nodejs20-slim |
3.10.18 | 20.19.4 | slim |
python3.10-nodejs20-alpine |
3.10.18 | 20.19.4 | alpine |
python3.9-nodejs24 |
3.9.23 | 24.6.0 | bookworm |
python3.9-nodejs24-bullseye |
3.9.23 | 24.6.0 | bullseye |
python3.9-nodejs24-slim |
3.9.23 | 24.6.0 | slim |
python3.9-nodejs24-alpine |
3.9.23 | 24.6.0 | alpine |
python3.9-nodejs22 |
3.9.23 | 22.18.0 | bookworm |
python3.9-nodejs22-bullseye |
3.9.23 | 22.18.0 | bullseye |
python3.9-nodejs22-slim |
3.9.23 | 22.18.0 | slim |
python3.9-nodejs22-alpine |
3.9.23 | 22.18.0 | alpine |
python3.9-nodejs20 |
3.9.23 | 20.19.4 | bookworm |
python3.9-nodejs20-bullseye |
3.9.23 | 20.19.4 | bullseye |
python3.9-nodejs20-slim |
3.9.23 | 20.19.4 | slim |
python3.9-nodejs20-alpine |
3.9.23 | 20.19.4 | alpine |
These tags are automatically updated when new minor or patch versions are released. The update process runs twice daily via GitHub Actions.
Python version | Start | End |
---|---|---|
3.13 | 2024-10-07 | 2029-10 |
3.12 | 2023-10-02 | 2028-10 |
3.11 | 2022-10-24 | 2027-10 |
3.10 | 2021-10-04 | 2026-10 |
3.9 | 2020-10-05 | 2025-10 |
Node.js version | Start | End |
---|---|---|
v24 | 2025-05-06 | 2028-04-30 |
v22 | 2024-04-24 | 2027-04-30 |
v20 | 2023-04-18 | 2026-04-30 |
Version information is updated automatically from official sources:
- Python: devguide.python.org/versions
- Node.js: github.com/nodejs/Release
# Pull from Docker Hub
docker pull c0mpiler/python-nodejs:python3.9-nodejs22
# Pull from GitHub Container Registry
docker pull ghcr.io/c0mpiler/python-nodejs:python3.9-nodejs22
# Pull from Quay.io
docker pull quay.io/c0mpiler/python-nodejs:python3.9-nodejs22
# Run interactive shell
docker run -it c0mpiler/python-nodejs:python3.9-nodejs22 bash
# Build from GitHub
docker build -t c0mpiler/python-nodejs github.com/c0mpiler/docker-py-node
# Using Docker Hub
FROM c0mpiler/python-nodejs:python3.12-nodejs22
# OR using GitHub Container Registry
# FROM ghcr.io/c0mpiler/python-nodejs:python3.12-nodejs22
# OR using Quay.io
# FROM quay.io/c0mpiler/python-nodejs:python3.12-nodejs22
# Use the pre-configured non-root user
USER c0mpiler
WORKDIR /home/c0mpiler/app
# Add your application code
COPY --chown=c0mpiler:c0mpiler . .
# Install dependencies
RUN pip install -r requirements.txt && \
npm install
# Run your application
CMD ["python", "app.py"]
All images include a non-root user c0mpiler
with uid 1000 and gid 1000, suitable for most development and production environments.
These images are available on multiple registries to ensure high availability and flexibility:
Registry | URL | Pull Command Example |
---|---|---|
Docker Hub | c0mpiler/python-nodejs | docker pull c0mpiler/python-nodejs:latest |
GitHub Container Registry | ghcr.io/c0mpiler/python-nodejs | docker pull ghcr.io/c0mpiler/python-nodejs:latest |
Quay.io | quay.io/c0mpiler/python-nodejs | docker pull quay.io/c0mpiler/python-nodejs:latest |
All registries are automatically updated with each release. You can use the registry that best fits your infrastructure or requirements.
This repository contains tools for generating and maintaining the Docker images:
# Install project dependencies
pip install -e .
# View available commands
ninja --help
# Generate a specific Dockerfile
ninja generate-dockerfile --python-version 3.12 --nodejs-version 18 --distro bookworm
# Update version information
ninja update-versions
# Display currently supported versions
ninja show-versions
This project is licensed under the MIT License - see the LICENSE file for details.