Open Source · MIT License

polarion-docker

Polarion on your laptop, ready in minutes.
One build. Every version. All platforms.

Docker · OrbStack · Apple Container
VS Code Integration
Polarion ALM 2406+
Star on GitHub Read the Blog ↗
$ run docker run -d --name polarion ghcr.io/phillipboesger/polarion-docker:latest
Explore
3 Container Runtimes
4+ Polarion Versions
VS Code Task Integration
MIT License

From zero to running Polarion

Build once, run anywhere. Control everything from VS Code or the terminal — start, stop, logs, debugger, mail catcher.

polarion-docker · build & start
# 1. Clone the repo and drop your Polarion ZIP into data/
$ git clone https://github.com/phillipboesger/polarion-docker
$ cp ~/Downloads/PolarionALM_2506.zip data/
# 2. Build the image (BuildKit handles the ZIP automatically)
$ docker build -t polarion:local .
[1/6] FROM docker.io/library/almalinux:9
[3/6] RUN install PostgreSQL, SVN, Java 17 ...
[6/6] COPY polarionctl.sh, entrypoint.sh ...
✓ Built polarion:local (3.2 GB)
# 3. Start Polarion
$ ./polarionctl.sh start
Starting container polarion …
PostgreSQL ready
Polarion starting (est. 60–90s)
✓ Open http://localhost/
polarion-docker · VS Code workspace tasks
// Run any of these from VS Code ⌘⇧P → "Tasks: Run Task"
Container: Start · build image if missing, then docker run
Container: Stop · graceful shutdown (saves workspace data)
Container: Logs · tail Polarion log in VS Code terminal
Container: Errors · grep log for ERROR / WARN lines
Debugger: Attach · connect VS Code Java debugger on port 8000
Plugin: Redeploy · hot-deploy your .jar without restart
// Attach debugger — set breakpoints and Polarion stops there
Debugger attached on localhost:8000 (JDWP)
Thread suspended at MyWorkflowFunction.java:42
polarion-docker · Mailpit embedded mail catcher
# Mailpit starts automatically with the container
# All Polarion notification emails are caught — nothing reaches real mailboxes
$ ./polarionctl.sh start
Mailpit ready → http://localhost:8025
Polarion ready → http://localhost
# Trigger a workflow action that sends email in Polarion …
[Mailpit] New message from Polarion
Subject: [DEMO-42] Work Item status changed to In Review
# To use a real SMTP server instead:
$ SMTP_HOST=smtp.example.com MAILPIT_EMBEDDED=false ./polarionctl.sh start

Everything you need to develop for Polarion

A production-grade Docker image that turns Polarion setup from a half-day chore into a two-command workflow.

🏗️
Fully Pre-Configured

PostgreSQL, WebSocket proxy, SVN aliases, and memory tuning handled automatically. Drop in your Polarion ZIP, build, and start — nothing else to configure.

zero-config
💻
VS Code Workspace

Bundled workspace file with tasks for every action: start, stop, logs, error grep, debugger attach, and hot plugin redeploy. Run everything without leaving your editor.

vscode tasks
🐛
Integrated Debugger

JDWP debug port exposed out of the box. Attach VS Code's Java debugger and set breakpoints inside any Polarion class or your own plugin — live, while Polarion runs.

jdwp · port 8000
📬
Mailpit Mail Catcher

Embedded Mailpit catches all outgoing Polarion notifications automatically. Inspect every email at localhost:8025 without touching a real mailbox. Override with a real SMTP host for integration testing.

localhost:8025
🔄
Hot Plugin Redeploy

Deploy your plugin JAR into a running container without restarting Polarion. The "Plugin: Redeploy" VS Code task copies and triggers reloading — plugin loop iteration time drops to seconds.

no restart needed
🍎
Apple Container Ready

Full support for macOS's new native container runtime (macOS 26+) alongside Docker and OrbStack. One Dockerfile, every runtime — including Apple's linux/amd64 emulation layer.

macos 26+

Running in 3 steps

01
Get the ZIP

Download your Polarion ZIP from Siemens and drop it into the repo's data/ folder. That's the only file you need to supply.

data/PolarionALM_*.zip
02
Build

One command. Docker (or OrbStack, or Apple Container) handles everything: OS layer, PostgreSQL, Java, WebSocket config, and the Polarion installation itself.

docker build -t polarion:local .
03
Start & Develop

Run the container, open VS Code, and start building. Attach the debugger, deploy your plugin, inspect emails — all from within your editor.

./polarionctl.sh start

Runs on your machine

One Dockerfile. Every major container runtime. Pick what's already installed.

🐳
Docker Desktop
macOS, Windows, Linux. The universal default — if Docker is installed, it works.
docker build
🌀
OrbStack
Lightweight Docker alternative for macOS. Faster startup, lower memory, drop-in compatible.
docker build
🍎
Apple Container
Native macOS 26+ container runtime. Build with container build and the linux/amd64 platform flag.
macOS 26+
🖥️
Linux / CI
Runs on any Linux host with Docker Engine. Works in CI pipelines for integration testing.
headless

Get building

Choose your container runtime. Copy the commands. You're developing on Polarion in minutes.

# Clone and drop in your Polarion ZIP
git clone https://github.com/phillipboesger/polarion-docker
cp ~/Downloads/PolarionALM_*.zip data/

# Build
docker build --platform linux/amd64 -t polarion:local .

# Run
docker run -d \
  --name polarion \
  --platform linux/amd64 \
  --memory 4g \
  -p 80:80 \
  -p 8025:8025 \
  -p 5433:5433 \
  -p 5005:5005 \
  -e JAVA_OPTS="-Xmx3g -Xms3g" \
  -e JDWP_ENABLED=true \
  --volume polarion_repo:/opt/polarion/data/svn \
  --volume polarion_extensions:/opt/polarion/polarion/extensions \
  polarion:local

# Polarion: http://localhost/    Mailpit: http://localhost:8025/
# Requires macOS 26+ with Apple Container
container system start
container builder start --cpus 8 --memory 8g
container build --platform linux/amd64 -t polarion:local .
container builder stop

container run -d \
  --name polarion \
  --platform linux/amd64 \
  --rosetta \
  --cpus 8 \
  --memory 4g \
  -p 127.0.0.1:8080:80 \
  -p 127.0.0.1:8025:8025 \
  -p 127.0.0.1:5433:5433 \
  -p 127.0.0.1:5005:5005 \
  -e JAVA_OPTS="-Xmx3g -Xms3g" \
  -e JDWP_ENABLED=true \
  -v polarion_repo:/opt/polarion/data/svn \
  -v polarion_extensions:/opt/polarion/polarion/extensions \
  polarion:local

# Polarion: http://localhost:8080/    Mailpit: http://localhost:8025/
// Open the bundled workspace file in VS Code
code polarion-docker.code-workspace

// Then run tasks via  ⌘⇧P → "Tasks: Run Task"
//
Container: Start      →  builds image if needed, starts container
Container: Stop       →  graceful shutdown
Container: Logs       →  live log tail in terminal
Container: Errors     →  filter log for ERROR / WARN
Debugger: Attach      →  connect Java debugger
Plugin: Redeploy      →  hot-deploy plugin JAR without restart
// .vscode/launch.json — already included in the workspace
{
  "type": "java",
  "name": "Attach to Polarion (Docker)",
  "request": "attach",
  "hostName": "localhost",
  "port": 5005
}

// Container must be started with JDWP enabled (-p 5005:5005 -e JDWP_ENABLED=true)
// Then use the VS Code "Debugger: Attach" task or F5
// Set breakpoints in your plugin or Polarion classes — they hit live.
Not publicly available. The ghcr.io/phillipboesger/polarion-docker image bundles a licensed Polarion install and is only accessible to authorized pull accounts. Use Build from Source above unless you already have access.
# Every Polarion version ships its own image tag (e.g. 2506, 2606).
# Use :latest to always get the most recent release.
docker run -d \
  --name polarion \
  --platform linux/amd64 \
  --memory 4g \
  -p 80:80 \       # Polarion web UI → http://localhost/
  -p 8025:8025 \   # Mailpit        → http://localhost:8025/
  -p 5433:5433 \   # PostgreSQL
  -p 5005:5005 \   # JDWP debugger
  -e JAVA_OPTS="-Xmx3g -Xms3g" \
  -e JDWP_ENABLED=true \
  --volume polarion_repo:/opt/polarion/data/svn \
  --volume polarion_extensions:/opt/polarion/polarion/extensions \
  ghcr.io/phillipboesger/polarion-docker:latest
Phillip Bösger

Built by Phillip Bösger

Polarion & AI Freelancer · Bösger Digital

Nearly a decade of Polarion experience. I built polarion-docker because setting up a local Polarion instance was taking half a day — and I needed to do it every time I started with a new client or version. Now it's two commands.

Ready to stop fighting Polarion setup?

Open-source, self-hosted, and running in minutes. Your ZIP, your machine, your data.