Docker - 用 Windows 架設 Wordpress 的坑

使用 docker-compose 啟動 wordpress,以下介紹幾個幾本用法。

  • 執行當前目錄的 docker-compose.yml

    docker-compose up
  • 在背景執行當前目錄的 docker-compose.yml

    docker-compose up -d
  • 根據當前目錄的 docker-compose,結束相關的容器(container)。

    docker-compose down

暸解幾種基本的 docker-compose 用法後,現在就來撰寫 wordpress 的 docker-compose.yml

version: '2'

services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- "./web:/var/www/html"
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress

注意事項

pppoe

記得要設定好固定 ip 才能讓其他人連結。

wordpress 需要設定 domain

windows 防火牆輸入規則

控制台 -> 系統及安全性 -> windows防火牆 -> 進階選項 -> 輸入規則

Wordpress 上傳檔案時遇到限制檔案大小 2M

https://github.com/docker-library/wordpress/issues/10

可以透過自定義 upload.ini,增加限制。

file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600

新增 upload.ini 後,要記得在 docker-compose.yml 中透過 volumes 取代預設的 upload.ini

db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: "PASSWORD-HERE"

wordpress:
image: wordpress:latest
ports:
- "80:80"
links:
- db:mysql
volumes:
- uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

Reference