WordPress with Docker – 部署篇

最近終於有空可以開始動工遷移blog了,這次的目標是將部署/備份/還原 WordPress 資料的時間縮到最短,以往要搬家就很蛋疼,這次用docker-compose一次解決掉!

原先考慮到安全性,從有後台的 WordPress 搬到靜態網頁的 Hexo 框架,但用 Hexo 來撰寫 blog 很吃寫作環境,出門在外十分不方便,於是最後只好又投向 WordPress 的懷抱了。

環境準備

  1. Web Server環境:安裝 Nginx 或 Apache 的主機
  2. Docker 環境: docker, docker-compose

我這邊的 Server 採用 Synology NAS,首先使用套件中心安裝 Web stationDocker
file

file

開啟 NAS 的 SSH 登入,會發現 dockerdocker-compose 都安裝好了
file

file

用 Synology NAS 就是快,點兩下就把部署環境準備好了。

建立 WordPress 服務

建立 WordPress 服務只需要資料庫和 WordPress 的 Docker image,為了往後方便調整資料庫,在這邊也加入 phpmyadmin。

若第一次使用 dockerdocker-compose 部署服務,可以直接使用下列的 docker-compose.yml

version: '3.3'

services:
   mariadb:
     image: mariadb:latest
     volumes: ['./mariadb:/var/lib/mysql']
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: <password>
       MYSQL_DATABASE: wp_SkyLake
       MYSQL_USER: wp_SkyLake
       MYSQL_PASSWORD: <password>
     networks:
       wpsite:

   phpmyadmin:
     depends_on:
       - mariadb
     image: phpmyadmin/phpmyadmin
     restart: always
     ports:
       - '8080:80'
     environment:
       PMA_HOST: mariadb
       MYSQL_ROOT_PASSWORD: <password>
     networks:
       - wpsite

   wordpress:
     depends_on:
       - mariadb
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     volumes: ['./wordpress:/var/www/html']
     environment:
       WORDPRESS_DB_HOST: mariadb:3306
       WORDPRESS_DB_USER: wp_SkyLake
       WORDPRESS_DB_PASSWORD: <password>
       WORDPRESS_DB_NAME: wp_SkyLake
     networks:
       - wpsite

networks:
  wpsite:

  • 新建另外一個wordpress網站的時候,host的port不可以重複
  • 使用 docker-compose up -d 建立wordpress服務後,只要備份 wordpressmariadb 資料夾即可。

參考資料

轉移紀錄

  • 2019/06/17 轉移SkyLake’s Blog
  • 2019/07/14 轉移Stranger’s Blog
  • 2019/08/05 轉移Leoliday’s Blog

Related Posts

One thought on “WordPress with Docker – 部署篇

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。