Wordpress Dockerized ( wp + mariadb + nginx + myphpadmin)

PHOTO EMBED

Wed Jun 14 2023 23:12:01 GMT+0000 (Coordinated Universal Time)

Saved by @swina #wordpress #docker-compose

--------------------------------------------------------------------------------------
# docker-compose.yaml
--------------------------------------------------------------------------------------
version: '3.6'

services:
  db:
    image: mariadb:latest
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wpdb
      MYSQL_USER: wpdbuser
      MYSQL_PASSWORD: wppasswd
      VIRTUAL_HOST: example.com, www.example.com
    volumes:
      - ./data_db:/var/lib/mysql
    networks:
      - wpsite

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    restart: unless-stopped
    ports:
      - 18000:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: root
    networks:
      - wpsite

  wordpress:
    image: wordpress:latest
    depends_on:
      - db
    restart: unless-stopped
    ports:
      - 18001:80
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wpdb
      WORDPRESS_DB_USER: wpdbuser
      WORDPRESS_DB_PASSWORD: wppasswd
    volumes:
      - ./YOUR_WORDPRESS_FOLDER:/var/www/html
    networks:
      - wpsite

   nginx: 
    build: 
      context: ./nginx
    ports: 
      - 80:80
    networks: 
      - nextjs-app

networks:
  wpsite:


#---------------------------------------------------------------------------
#./nginx/Dockerfile
#---------------------------------------------------------------------------
FROM nginx

# Remove any existing config files
RUN rm /etc/nginx/conf.d/\*

# Copy config files
COPY ./default.conf /etc/nginx/conf.d/

# If you want basic auth create a .htpasswd 
# COPY ./.htpasswd ./etc/nginx/.htpasswd

# Expose the listening port
EXPOSE 80

# Launch NGINX
CMD [ "nginx", "-g", "daemon off;" ]

#-------------------------------------------------------------------------
#./nginx/default.conf
#-------------------------------------------------------------------------

upstream nextjs {
  server wordpress:18001;
}

server {
    listen 80;
    server_name _;
    server_tokens off;

    gzip on;
    gzip_proxied any;
    gzip_comp_level 4;
    gzip_types text/css application/javascript image/svg+xml;

    
    
    location / {
    	proxy_pass: http://wordpress;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        #auth_basic "Restricted Content";
    	#auth_basic_user_file /etc/nginx/.htpasswd;
    }
    
}


content_copyCOPY