烂泥:wordpress的docker镜像拆分

本文由ilanniweb微信公众号提供友情赞助,首发于烂泥行天下

jenkins技术分享QQ群:571981257

在《烂泥:wordpress迁移到docker》这篇文章中,wordpress镜像包含了apache、php、php-fpm等功能。

但是为了能单独使用nginx,所以我们需要把wordpress镜像进行拆分。

nginx镜像使用的是nginx:alpine这个tag,wordpress使用的是wordpress:fpm-alpine这个tag。

下面我们就直接贴出docker-compose.yml文件,如下:

cat docker-compose.yml

mysqldb:

image: mysql:latest

container_name: ilanni_mysql

restart: always

ports:

– "3306:3306"

volumes:

– ./data:/var/lib/mysql

environment:

MYSQL_ROOT_PASSWORD: 123456

MYSQL_DATABASE: ilanni

MYSQL_USER: wwwilanni

MYSQL_PASSWORD: 123456

wordpress_php:

image: wordpress:fpm-alpine

container_name: ilanni_wordpress

restart: always

environment:

WORDPRESS_DB_HOST: mysqldb:3306

WORDPRESS_DB_NAME: ilanni

WORDPRESS_DB_USER: wwwilanni

WORDPRESS_DB_PASSWORD: 123456

volumes:

– ./wordpress:/var/www/html

links:

– mysqldb

web:

image: nginx:alpine

restart: always

ports:

– "80:80"

container_name: ilanni_nginx

volumes:

– ./wordpress:/var/www/html

– ./ ilanni.com.conf:/etc/nginx/conf.d/ilanni.com.conf

links:

– wordpress_php

clip_image001

clip_image002

对于这个docker-compose文件中,我们定义了mysqldb、wordpress_php和web,这三个docker容器。

其中wordpress_php这个容器对外映射的wordpress目录是可以随便定义的,但是容器里面的/var/www/html目录不是随便定义的,这个是wordpress程序存在的目录。

在web容器中对外映射的wordpress目录是根据wordpress_php这个容器定义的,在使用时,我们只需要和wordpress_php这个容器对外映射的目录保持一致即可。

除此之外,我们还把本地的ilanni.com.conf这个nginx配置文件,映射到web容器里面。如果我们还有其他域名的话,我们也可以在次添加新的配置文件。

现在我们再来看看ilanni.com.conf这个nginx配置文件,其内容如下:

cat ilanni.com.conf

server {

listen 80;

    server_name www.ilanni.com;

   root /var/www/html;

    index index.php;

    access_log /var/log/nginx/hakase-access.log;

    error_log /var/log/nginx/hakase-error.log;

    location / {

        try_files $uri $uri/ /index.php?$args;

    }

    location ~ \.php$ {

        try_files $uri =404;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass wordpress_php:9000;

        fastcgi_index index.php;

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param PATH_INFO $fastcgi_path_info;

    }

}

clip_image003

在ilanni.com.conf这个nginx配置文件中的root,其实就是wordpress_php容器中wordpress程序所在的目录/var/www/html

除此之外我们还需要关注下wordpress_php:9000中的wordpress_php,是表示web容器的nginx要连接wordpress_php容器的9000端口。其实就是为了连接fpm,配置使用。

未经允许不得转载:烂泥行天下 » 烂泥:wordpress的docker镜像拆分

赞 (7) 打赏

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

支付宝扫一扫打赏

微信扫一扫打赏