This post is to show the steps how to use Portainer to create a custom template to launch your WordPress stack if default stack template is not working.

The default template works well for x86 / x64 architecture. Since I am use Arm64 based VPS to do installation, I am having this error message:

“Deployment error
Status: no matching manifest for linux/arm64/v8 in the manifest list entries, code:1

It is because they could not find the arm64 based matching image under that linux repository. What we will need to do to fix this issue is to create a custom template to change image name to right one. 


Custom WordPress Template

Based on mysql/mysql-server’s supported tags to show, version 8.0 is supporting arm architecture. (


Lets change db’s image from image: mysql:5.7 to image: mysql/mysql-server:8.0 

version: '2'

     image: mysql/mysql-server:8.0
       - db_data:/var/lib/mysql
     restart: always
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

     image: wordpress:latest
       - 80
     restart: always
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress


Create subdomain for your new WordPress site

This is a simple step. Based on your domain name registrar, you can find out the management panel to add a new sub domain for your new workdpress site. Here is an example from my Cloudflare page. 

Change Docker Network

Previously, I have create a custom bridge network, which all of my Dockers joined in. 

Change WordPress dockers network to the same network as Nginx.

Nginx Configuration


Create Nginx configuration file for WordPress site:

root@560e40a1e1d2:/etc/nginx/conf.d# cat arm1wp.conf 
server {
    listen       80;

location / {
    proxy_pass       http://mywp_wordpress_1;
    proxy_http_version         1.1;
    proxy_read_timeout 300;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-PORT $remote_port;

YouTube Video:

from Blogger

By Jon

Leave a Reply