Skip to main content

Build Images

Build images are pre-configured Docker environments used to build and run your application. Select a build image in Application > Build Settings or specify one in your appliku.yml file.

For the full Dockerfile contents of each image, see Predefined Dockerfiles.

Python

Build ImageBase OSIncluded ToolsUse Case
python-3.14Debian BullseyePython 3.14, pip, setuptools, gunicornBleeding-edge Python
python-3.13Debian BullseyePython 3.13, pip, setuptools, gunicornLatest stable Python
python-3.12Debian BullseyePython 3.12, pip, setuptools, gunicornStable Python applications
python-3.11Debian BullseyePython 3.11, pip, setuptools, gunicornPython 3.11 compatibility
python-3.10Debian BullseyePython 3.10, pip, setuptools, gunicornPython 3.10 compatibility
python-3.9Debian BullseyePython 3.9, pip, setuptools, gunicornLegacy
python-3.8Debian BullseyePython 3.8, pip, setuptools, gunicornLegacy
python-3.7Debian BullseyePython 3.7, pip, setuptools, gunicornLegacy
python-3.6Debian BullseyePython 3.6, pip, setuptools, gunicornLegacy
python-3.5Debian BullseyePython 3.5, pip, setuptools, gunicornLegacy

Common use cases: Django, Flask, FastAPI, Celery workers, data processing scripts.

All Python images include:

  • pip and setuptools (latest)
  • gunicorn pre-installed
  • System libraries for common native extensions (libssl-dev, libfreetype6-dev)
  • Automatic collectstatic for Django projects (disable with DISABLE_COLLECTSTATIC=1)

Python + uv

These images use uv as the package manager instead of pip. uv is significantly faster for dependency resolution and installation.

Build ImageBase OSIncluded ToolsUse Case
python-3.14-uvDebian BullseyePython 3.14, uv, gunicornBleeding-edge Python with uv
python-3.13-uvDebian BullseyePython 3.13, uv, gunicornLatest stable Python with uv
python-3.12-uvDebian BullseyePython 3.12, uv, gunicornPython 3.12 with uv
python-3.11-uvDebian BullseyePython 3.11, uv, gunicornPython 3.11 with uv
tip

If your project uses uv for dependency management, choose a Python + uv image for faster builds.

Python + Node.js

Build ImageBase OSIncluded ToolsUse Case
python-3.14-node-25.6Debian BullseyePython 3.14, Node.js 25.6, npmPython + JS frontend build
python-3.13-node-20.18Debian BullseyePython 3.13, Node.js 20.18, npm, yarnPython + JS frontend build
python-3.12-node-20.10Debian BullseyePython 3.12, Node.js 20.10, npm, yarnPython + JS frontend build
python-3.11-node-20.10Debian BullseyePython 3.11, Node.js 20.10, npm, yarnPython + JS frontend build
python-3.10-node-20.10Debian BullseyePython 3.10, Node.js 20.10, npm, yarnPython + JS frontend build

Common use cases: Django + React/Vue/Svelte frontends, Python backends with JavaScript build steps (Webpack, Vite, Tailwind CSS).

tip

Use a Python + Node.js image when your Django or Flask project needs to compile frontend assets during the build phase. Set a build_command like npm run build to compile your assets.

Python + uv + Node.js

These images combine uv for Python package management with Node.js for frontend builds.

Build ImageBase OSIncluded ToolsUse Case
python-3.14-uv-node-25.6Debian BullseyePython 3.14, uv, Node.js 25.6, npmPython (uv) + JS frontend
python-3.13-uv-node-25.6Debian BullseyePython 3.13, uv, Node.js 25.6, npmPython (uv) + JS frontend
python-3.12-uv-node-25.6Debian BullseyePython 3.12, uv, Node.js 25.6, npmPython (uv) + JS frontend
python-3.11-uv-node-25.6Debian BullseyePython 3.11, uv, Node.js 25.6, npmPython (uv) + JS frontend

Node.js

Build ImageBase OSIncluded ToolsUse Case
node-20-npmAlpine LinuxNode.js 20, npm, Python 3 (for native modules)Node.js with npm
node-20-yarnAlpine LinuxNode.js 20, yarnNode.js with yarn
node-14--Node.js 14Legacy
node-12--Node.js 12Legacy
node-10--Node.js 10Legacy

Common use cases: Express.js, Next.js, Nest.js, API servers, static site generators.

warning

node-10, node-12, and node-14 are provided for legacy compatibility only. These versions have reached end-of-life. Use node-20-npm or node-20-yarn for new projects.

Ruby

Build ImageBase OSIncluded ToolsUse Case
ruby-3.4.1Debian SlimRuby 3.4.1, Bundler, build-essential, gitLatest Ruby
ruby-3.3-railsDebian SlimRuby 3.3, Bundler, Bootsnap, multi-stage buildRails applications
ruby-3.1Debian SlimRuby 3.1, BundlerRuby 3.1 compatibility
ruby-2.7Debian SlimRuby 2.7, BundlerLegacy
ruby-2.6Debian SlimRuby 2.6, BundlerLegacy
ruby-2.5Debian SlimRuby 2.5, BundlerLegacy

Common use cases: Ruby on Rails, Sinatra, Sidekiq workers.

The ruby-3.3-rails image uses a multi-stage Dockerfile optimized for Rails:

  • Separate build and runtime stages for smaller final images
  • Bootsnap precompilation for faster boot times
  • Asset precompilation built-in
  • PostgreSQL client libraries included

PHP

Build ImageBase OSIncluded ToolsUse Case
php-7.4-laravel-fpm--PHP 7.4, Composer, PHP-FPM, NginxLaravel applications
php-7--PHP 7, ComposerGeneral PHP applications

Common use cases: Laravel, WordPress, custom PHP applications.

Alternative Runtimes

Build ImageBase OSIncluded ToolsUse Case
pypy2--PyPy 2Legacy Python 2 with JIT
pypy3--PyPy 3Python 3 with JIT compilation

Common use cases: CPU-intensive Python applications that benefit from JIT compilation.

Static Sites

Build ImageUse Case
Any Node.js imageBuild static sites (React, Vue, Next.js static export)

For static sites, set is_static_site: true and output_directory in your appliku.yml to point to the directory containing your built HTML/CSS/JS files.

Custom Dockerfile

Build ImageDescription
dockerfileUse a Dockerfile from your repository
customEnter a custom Dockerfile directly in the dashboard

Use a custom Dockerfile when:

  • Your application requires a language or runtime not covered by the predefined images
  • You need specific system packages or tools
  • You want full control over the build environment
  • You need a multi-stage build for optimization

For guidance on writing custom Dockerfiles for Appliku, see Deploy from a Dockerfile.

Choosing the Right Build Image

  1. Match your primary language -- pick the image for your main runtime
  2. Need frontend builds? -- use a Python + Node.js combo image if your backend is Python
  3. Optimizing for size? -- Node.js Alpine images are smaller; Ruby Rails uses multi-stage builds
  4. Special requirements? -- use a custom Dockerfile for full control