Back to Blog
Tutorial6 min read2026-05-01

How to Run WordPress as a Container App (Without Managing a Server)

PandaStack does not sell managed WordPress, but you can run the official WordPress image as a container app with a managed MySQL attached. Here is how.

Ajay Kumar
Ajay Kumar
Founder & DevOps, PandaStack

# How to Run WordPress as a Container App (Without Managing a Server)

Self-hosted WordPress has a well-known problem: you spend more time managing the server than building the site. Security patches, PHP version upgrades, database maintenance, SSL renewals — none of this is why you chose WordPress.

To be clear up front: PandaStack does not offer a managed WordPress product. There is no one-click WordPress installer, no automatic WordPress core or plugin updates, and no WordPress-specific support tier. If that is what you want, a dedicated managed WordPress host like WP Engine, Kinsta, or Cloudways is the right tool.

What PandaStack *does* give you is a container platform and a managed MySQL database. Since WordPress ships an official Docker image, you can run WordPress as a normal container app and let the platform handle the parts that are genuinely infrastructure: the container runtime, TLS, the database, and monitoring. You still own WordPress itself.

What You Get (and What You Own)

Handled by the platform:

  • Container build and deployment from a Dockerfile or image
  • Automatic SSL certificate and custom domain support
  • Managed MySQL database with backups
  • Uptime monitoring and alerts
  • Logs and resource metrics

Still your responsibility:

  • WordPress core, theme, and plugin updates
  • Persistent storage strategy for uploads
  • Caching and performance plugins
  • WordPress-level security hardening

Step 1: Create the Managed MySQL Database

  1. 1Log in to [dashboard.pandastack.io](https://dashboard.pandastack.io)
  2. 2Go to DatabasesNew Database
  3. 3Select MySQL
  4. 4Choose a name and tier, then click Create

Once provisioned, copy the connection details — host, port, database name, username, and password. WordPress needs all five.

Step 2: Deploy the WordPress Container

Create a repository with a minimal Dockerfile:

FROM wordpress:php8.3-apache

That is genuinely all you need to start — the official image contains WordPress and a configured PHP/Apache stack. Then in the dashboard:

  1. 1Go to AppsNew App
  2. 2Connect your GitHub repository
  3. 3Select Container as the deployment type
  4. 4Set the exposed port to 80
  5. 5Click Deploy

Step 3: Wire WordPress to the Database

WordPress reads its database configuration from environment variables in the official image. In your app settings, add:

  • WORDPRESS_DB_HOST — the MySQL host and port from Step 1
  • WORDPRESS_DB_NAME — your database name
  • WORDPRESS_DB_USER — your database username
  • WORDPRESS_DB_PASSWORD — your database password

Redeploy after saving. On first boot, WordPress runs its installer against the managed database.

Step 4: Connect a Custom Domain

  1. 1In your app dashboard, click DomainsAdd Domain
  2. 2Enter your domain (e.g., yourblog.com)
  3. 3In your DNS provider, add a CNAME record pointing to the hostname shown in PandaStack
  4. 4Click Verify

SSL is issued automatically once DNS propagates.

Then go to wp-adminSettingsGeneral and set WordPress Address and Site Address to your HTTPS domain.

Step 5: Handle Uploads and Persistence

This is the most important difference from a managed WordPress host, and it is easy to get wrong. Container filesystems are ephemeral — anything written to wp-content/uploads inside the container is lost on redeploy.

Two workable approaches:

  • Attach a persistent volume to the app and mount it at /var/www/html/wp-content/uploads
  • Use an object-storage offload plugin so media goes to S3-compatible storage instead of local disk

Pick one before you publish real content. Retrofitting this after you have hundreds of uploaded images is painful.

Step 6: Set Up Monitoring and Alerts

In your app dashboard, go to MonitoringAdd Alert:

  • Alert type: Uptime check (HTTP 200 on your homepage)
  • Notification channel: Email, Slack webhook, or custom webhook
  • Frequency: Every 5 minutes

You will be notified immediately if your site goes down.

Container WordPress vs. Managed WordPress Hosts

ConcernWordPress as a container appDedicated managed WordPress host
Server setupNoneNone
SSL certificateAutomaticAutomatic
DatabaseManaged MySQL, provisioned separatelyBundled
WordPress core updatesYour responsibilityManaged
Plugin update automationYour responsibilityUsually included
Staging environmentsPreview environments (generic)WordPress-aware
Runs alongside your APIs and workersYesNo

When This Approach Makes Sense

Running WordPress as a container app is a good fit when WordPress is one piece of a larger system you already host — an API, a set of workers, a couple of databases — and you would rather not add another vendor for a single marketing site. You accept owning WordPress updates in exchange for consolidation.

If WordPress *is* the product and you want someone else handling core updates, plugin compatibility, and WordPress-specific support, use a purpose-built managed WordPress host instead. That is a real category, and PandaStack is not competing in it.

Full docs: [docs.pandastack.io](https://docs.pandastack.io).

Ready to deploy?

Start free on PandaStack.

Start free on PandaStack

More in Tutorial

Browse all Tutorial articles →

See also