首頁  >  文章  >  CMS教程  >  怎麼使用Docker Swarm來搭建Wordpress

怎麼使用Docker Swarm來搭建Wordpress

藏色散人
藏色散人轉載
2021-04-20 14:14:141791瀏覽

以下由WordPress教學專欄為大家介紹使用 Docker Swarm 建立 Wordpress的方法,希望對需要的朋友有幫助!

怎麼使用Docker Swarm來搭建Wordpress

#起因

我曾經把wordpress 搭建在Vultr 上,但是因為眾所周知的原因,這個地方訪問越來越慢。再後來我選擇了新浪雲,新浪雲的確夠便宜,也很不錯,但是要備案,還有評論功能估計要閹割,想想還是算了,找個香港的主機搭建 wordpress 即可。

購買主機

我這裡選擇的是阿里雲的輕量應用程式伺服器,這台主機的好處就是便宜,夠用。
例如我選擇的香港的主機,一個月只需要 24 塊錢,一核心一G內存,網速為 30Mbps,磁碟空間 25GB,月流量 1TB。

配置如下圖
怎麼使用Docker Swarm來搭建Wordpress

初始化docker 環境

雖然上面有一件安裝wordpress的功能,但是我不推薦,因為配置都太老了

最終我選擇的是ubuntu18.04 系統,直接用下面的命令即可完成安裝docker 並且初始化docker swarm

curl -o- -L https://gist.githubusercontent.com/hangox/e679464f35dc2a78920e6249a21d7958/raw/c5541e38979dca1e3e1e9704ad171ed2f0556fa1/ubunut-install-docker.sh | bash

#編寫docker-compose

配置一覽

version: '3.7'

services:
  caddy:
    image: abiosoft/caddy
    ports:
      - 80:80
      - 443:443
    environment:
      - ACME_AGREE=true
      - TZ=Asia/Shanghai
    volumes:
      - caddy:/root/.caddy
      - wp-src:/usr/src/wordpress
    configs:
      - source: wp_caddy
        target: /etc/Caddyfile
  app:
    image: wordpress:5.4.1-php7.2-fpm
    environment:
      TZ: Asia/Shanghai
      WORDPRESS_DB_HOST: wp_db:3306
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: yourpassword
      WORDPRESS_DB_NAME: wordpress
    depends_on:
      - db
    volumes:
      - wordpress:/var/www/html
      - wp-src:/usr/src/wordpress
  db:
    image: mysql:8
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: yourpassword
      MYSQL_DATABASE: wordpress
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:
  caddy:
  wp-src:
configs:
  wp_caddy:
    external: true

配置解析

caddy

用來做反向代理,同時兼顧https 憑證申請,設定如下

https://47log.com  https://www.47log.com  {
    root /usr/src/wordpress
    gzip
    fastcgi / wp_app:9000 php
    rewrite {
        if {path} not_match ^\/wp-admin
        to {path} {path}/ /index.php?_url={uri}
    }
    log stdout
    errors stderr
}

這裡我用到了docker swarm 的config 功能,直接把設定寫入到wp_caddy 這個配置中。

db

這裡用的是mysql8 , wordpress 是支援的,效能也要更好點
要注意的,commmand 必須加上 command: --default-authentication-plugin=mysql_native_password 不然是沒辦法進行密碼認證的,我就是忘記加這個蛋痛了一陣子。

app

注意連接方式
如果你是用docker stack 部署的,部署的是什麼名字,資料庫連接那裡就要加上名字的前綴。例如我這裡是 docker stack deploy -c docker-compose.yml wp,我這裡資料庫在 docker 網路中的 host 就是 wp_db。如果你的 stack 名字是 wordpress , 就要對應的改為 wordpress_db

注意配置volume
- wordpress:/var/www/html 這個東西一定要配置,上次我就是沒有配置這個東西,刪掉container,主題直接沒有了。

使用docker stack 部署

一行指令docker stack deploy -c docker-compose.yml wp 等一段時間就能進入wordpress 了

為什麼使用docker swarm。因為有 portainer , docker-swarm 連接到 portainer 之後可以有全功能的配置能力。

以上是怎麼使用Docker Swarm來搭建Wordpress的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除