You are currently viewing WordPress Website Deployed with Docker Compose on AWS Cloud

WordPress Website Deployed with Docker Compose on AWS Cloud

Step 1: Update your system

sudo apt update -y

sudo apt upgrade -y

Step 2: Install Docker Engine + Docker Compose plugin

Docker Compose now comes as a plugin in Docker, so installing Docker Engine will give you both.

#Copy under all code#

# Install required packages

sudo apt install -y ca-certificates curl gnupg lsb-release

# Add Docker’s official GPG key

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg

# Add Docker repository

echo \

“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \

https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | \

sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Update repo and install Docker Engine + Compose plugin

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Check Docker and Compose versions

docker –version

docker compose version

Step 3: Create WordPress project folder

mkdir wordpress-docker

cd wordpress-docker

Step 4: Create docker-compose.yml

nano docker-compose.yml

#Paste this content inside#

version: ‘3.8’

services:

  db:

    image: mysql:5.7

    volumes:

      – db_data:/var/lib/mysql

    restart: always

    environment:

      MYSQL_ROOT_PASSWORD: example

      MYSQL_DATABASE: wordpress

      MYSQL_USER: wordpress

      MYSQL_PASSWORD: wordpress

  wordpress:

    image: wordpress:latest

    ports:

      – “80:80”

    restart: always

    environment:

      WORDPRESS_DB_HOST: db:3306

      WORDPRESS_DB_USER: wordpress

      WORDPRESS_DB_PASSWORD: wordpress

      WORDPRESS_DB_NAME: wordpress

    depends_on:

      – db

volumes:

  db_data:

#Save and exit: Ctrl + O → Enter → Ctrl + X#

Step 5: Run Docker Compose

sudo docker compose up -d

This will:

  • Pull WordPress and MySQL images
  • Create containers
  • Start WordPress + MySQL in the background

Step 6: Check running containers:

sudo docker ps

Step 6: Access WordPress

Open your browser and go to:

http://<your-server-public-ip>/

You will see the WordPress installation page. Complete it:

  • Site Title
  • Admin Username & Password
  • Email

Done! WordPress is running.

Nginx Install Instructions

sudo apt update

sudo apt install nginx -y

sudo systemctl enable nginx

sudo systemctl start nginx

sudo nano /etc/nginx/sites-available/mindgnite

server {

    listen 80;

    server_name yourdomain.com www.yourdomain.com;

    location / {

        proxy_pass http://127.0.0.1:8080;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}

sudo nginx -t

sudo systemctl restart nginx

Domain Name setup Instructions

sudo nano /etc/nginx/sites-available/wordpress

server {

    listen 80;

    server_name pioneermyanmar.tech www.pioneermyanmar.tech;

    location / {

        proxy_pass http://127.0.0.1:8080;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

sudo rm /etc/nginx/sites-enabled/default

sudo nginx -t

sudo systemctl restart nginx

secure your website with SSL (let’s encrypt)

sudo apt update

sudo apt install certbot python3-certbot-nginx -y

sudo certbot –nginx -d pioneermyanmar.tech -d www.pioneermyanmar.tech

Your Webpage is working On Online

Leave a Reply