WordPress @ Docker | 用Docker安装WordPress

Docker 安装WordPress用到了两个容器php-fpm 和 mariadb, 采用Docker Compose链接两个容器.

php-fpm容器的安装

基于php-fpm容器, 在上面安装nginx并配置即可.

Dockerfile:

FROM php:fpm-alpine
RUN apk update&& apk add nginx  && \
    rm -f /etc/nginx/conf.d/default.conf && ln -s /nginx.conf /etc/nginx/conf.d/default.conf&&\
    mkdir /run/nginx && \
    docker-php-ext-install mysqli
COPY . /
WORKDIR /wordpress
EXPOSE 80
CMD ["/bin/sh","/entry.sh"]

其中涉及到的nginx链接php-fpm的配置文件如下

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # for static
        location / {
                # 设置静态资源根目录
                root /wordpress;
                # 添加默认的首页
                index index.php;
                try_files $uri $uri/ /index.php?$args =404;
        }
        # for PHP
        location ~ .php$ {
            # WordPress根目录
            root /wordpress;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
        # You may need this to prevent return 404 recursion.
        location = /404.html {
                internal;
        }
}

对于server_name, ssl等其他配置请自由发挥.

这里主要注意不要忘记设置静态资源的根目录.

Docker Compose配置

要运行WordPress还需要数据库的支持, 这里采用mariadb, 用docker compose连接.

Docker Compose安装见此.

version: '3'
services:
  db:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=root_pwd
      - MYSQL_DATABASE=wp_data
      - MYSQL_USER=wp
      - MYSQL_PASSWORD=insecure-pwd
  wordpress:
    build: wp
    ports:
      - 8080:80

涉及到的几个环境变量的作用:

环境变量 作用
MYSQL_ROOT_PASSWORD 设定数据库root的密码
MYSQL_DATABASE 设定新的数据库, 用于存储WordPress的数据
MYSQL_USER 设定新用户名, 用来个WordPress做连接的用户
MYSQL_PASSWORD 设定新用户密码

生产环境中请务必使用高强度的密码!

构建容器并初始化博客

构建容器:

docker-compose up

待其构建完成后, 在浏览器中输入http://localhost:8080(或者对应的服务器ip/域名) 按现在开始按照说明输入上面的填的数据库信息信息即可. 注意在数据库主机处填上db(即compose配置文件里面的数据库service名).

{% asset_img wordpress_install.png 安装效果 %}

完整代码

完整的docker-compose项目文档挂在了github上:wordpress_with_docker

See Also

  1. How to install WordPress with Docker
  2. 安装 WordPress
  3. Docker Compose 配置文件详解
  4. Docker Compose 安装

Last modified on 2019-04-09