Docker?Compose搭建Wordpress服務(wù)實現(xiàn)詳解

前言
最近在研究wordpress獨立建站,在項目部署的時候也踩了一些坑,為了避免再次踩坑,特此通過此文章記錄一下。
編寫docker-compose.yaml
此次建站采用的是docker compose的方式來部署wordpress項目,我們可以進(jìn)入DockerHub官網(wǎng)找到wordpress鏡像:

根據(jù)官方文檔提供的信息,最終我們可以編寫出如下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: 數(shù)據(jù)庫用戶名
WORDPRESS_DB_PASSWORD: 數(shù)據(jù)庫密碼
WORDPRESS_DB_NAME: 數(shù)據(jù)庫名稱
WORDPRESS_TABLE_PREFIX: wp_
volumes:
- "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime" #設(shè)置系統(tǒng)時區(qū)
- "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone" #設(shè)置時區(qū)
- "./wordpress/html:/var/www/html"
mysql-server:
image: "mysql"
volumes:
- "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime" #設(shè)置系統(tǒng)時區(qū)
- "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone" #設(shè)置時區(qū)
# 配置文件
- "./mysql/conf:/etc/mysql/conf.d"
# 數(shù)據(jù)文件
- "./mysql/datadir:/var/lib/mysql"
# 日志文件
- "./mysql/logs:/logs"
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: 數(shù)據(jù)庫密碼
command: --default-authentication-plugin=mysql_native_password
注意點
鏡像的選擇
在DockerHub官網(wǎng)中,我們可以看到有很多不同版本的鏡像,比如php8.2-fpm-alpine、fpm-alpine、cli-php8.2、php8.2-apache等等,我們最終要選擇的是帶有web服務(wù)的鏡像,也就是類似`php8.2-apache版本號,后面接-apache的tag;
如果選擇的鏡像不帶web服務(wù),那么即使容器啟動成功了,瀏覽器訪問的時候也是不會有響應(yīng)結(jié)果的;
另外一點就是不要選擇默認(rèn)的latest,如果鏡像版本有更新,可能會造成線上版本不兼容的問題;
環(huán)境變量的配置
從官方文檔來看,是建議我們在配置中通過環(huán)境變量的方式來配置目標(biāo)數(shù)據(jù)庫的;即使不配置目標(biāo)數(shù)據(jù)庫,在項目啟動后的安裝引導(dǎo)上也會提示我們配置數(shù)據(jù)庫,但是可能會出現(xiàn)無法訪問localhost的情況;
在上述配置中,WORDPRESS_DB_HOST的配置我們使用的是mysql,它對應(yīng)同一個網(wǎng)絡(luò)環(huán)境下的mysql實例,只有當(dāng)wordpress實例與mysql實例在同一個網(wǎng)絡(luò)環(huán)境下時,這樣配置才會生效。否則我們需要通過公網(wǎng)ip或者域名來指定WORDPRESS_DB_HOST。
WORDPRESS_TABLE_PREFIX代表【數(shù)據(jù)表前綴】,可以根據(jù)需要設(shè)定;
volumes配置
我們在第一次創(chuàng)建wordpress實例時,還不能配置"./wordpress/html:/var/www/html"這個映射。我們需要先創(chuàng)建一個wordpress實例,然后通過docker cp命令從wordpress實例中拷貝/var/www/html文件到宿主機,上述配置"./wordpress/html:/var/www/html"就是我們把文件拷貝到宿主機的./wordpress/html下才添加的映射。
這樣做的好處在于,如果我們的代碼有任何的修改,都不會因為wordpress宕機造成已經(jīng)修改的源代碼丟失;
以上就是Docker Compose搭建Wordpress服務(wù)實現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Docker Compose搭建Wordpress的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何為Go程序創(chuàng)建一個最小的Docker Image詳解
這篇文章主要給大家介紹了關(guān)于如何為Go程序創(chuàng)建一個最小的Docker Image的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11

