首頁 > 軟體

Docker Compose搭建Wordpress服務實現詳解

2023-03-11 06:00:23

前言

最近在研究wordpress獨立建站,在專案部署的時候也踩了一些坑,為了避免再次踩坑,特此通過此文章記錄一下。

編寫docker-compose.yaml

此次建站採用的是docker compose的方式來部署wordpress專案,我們可以進入DockerHub官網找到wordpress映象:

根據官方檔案提供的資訊,最終我們可以編寫出如下docker-compose.yaml:

version: "3.1"
services:
  wordpress:
    image: wordpress:php8.2-apache
    restart: always
    ports:
      - "80:80"
    depends_on:
      - mysql
    environment:
      WORDPRESS_DB_HOST: mysql-server
      WORDPRESS_DB_USER: 資料庫使用者名稱
      WORDPRESS_DB_PASSWORD: 資料庫密碼
      WORDPRESS_DB_NAME: 資料庫名稱
      WORDPRESS_TABLE_PREFIX: wp_
    volumes:
      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime"        #設定系統時區
      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"  #設定時區
      - "./wordpress/html:/var/www/html"
  mysql-server:
    image: "mysql"
    volumes:
      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime"        #設定系統時區
      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"  #設定時區
      # 組態檔
      - "./mysql/conf:/etc/mysql/conf.d"
      # 資料檔案
      - "./mysql/datadir:/var/lib/mysql"
      # 紀錄檔檔案
      - "./mysql/logs:/logs"
    ports:
      - "3306:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 資料庫密碼
    command: --default-authentication-plugin=mysql_native_password

注意點

映象的選擇

DockerHub官網中,我們可以看到有很多不同版本的映象,比如php8.2-fpm-alpinefpm-alpinecli-php8.2php8.2-apache等等,我們最終要選擇的是帶有web服務的映象,也就是類似`php8.2-apache版本號,後面接-apachetag

如果選擇的映象不帶web服務,那麼即使容器啟動成功了,瀏覽器存取的時候也是不會有響應結果的;

另外一點就是不要選擇預設的latest,如果映象版本有更新,可能會造成線上版本不相容的問題;

環境變數的設定

從官方檔案來看,是建議我們在設定中通過環境變數的方式來設定目標資料庫的;即使不設定目標資料庫,在專案啟動後的安裝引導上也會提示我們設定資料庫,但是可能會出現無法存取localhost的情況;

在上述設定中,WORDPRESS_DB_HOST的設定我們使用的是mysql,它對應同一個網路環境下的mysql範例,只有當wordpress範例與mysql範例在同一個網路環境下時,這樣設定才會生效。否則我們需要通過公網ip或者域名來指定WORDPRESS_DB_HOST

WORDPRESS_TABLE_PREFIX代表【資料表字首】,可以根據需要設定;

volumes設定

我們在第一次建立wordpress範例時,還不能設定"./wordpress/html:/var/www/html"這個對映。我們需要先建立一個wordpress範例,然後通過docker cp命令從wordpress範例中拷貝/var/www/html檔案到宿主機,上述設定"./wordpress/html:/var/www/html"就是我們把檔案拷貝到宿主機的./wordpress/html下才新增的對映。

這樣做的好處在於,如果我們的程式碼有任何的修改,都不會因為wordpress宕機造成已經修改的原始碼丟失;

以上就是Docker Compose搭建Wordpress服務實現詳解的詳細內容,更多關於Docker Compose搭建Wordpress的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com