使用docker+wordpress搭建博客

需要的镜像

mysql镜像、wordpress镜像和nginx镜像

mysql容器

如果不需要运行一个独立公共的mysql环境可以省略这一步。
1.端口的映射
2.卷的挂载
3.容器环境变量中root账户密码的配置
mysql的配置很多,但必要的就这三个,详细建议参考dockerHub mysql文档,以下是一个简单的yaml配置可以作为参考。

mysql:
  image: xxxx/mysql:5.7         /镜像
  privileged: false
  restart: always
  ports:
  - 3306:3306       /端口映射
  expose:
  - '33060'
  volumes:
  - /var/lib/docker/volumes/xxxxx/:/var/lib/mysql       /挂载卷
  environment:
  - MYSQL_ROOT_PASSWORD=XXXXX       /root账户初始密码

wordpress容器

1.映射端口
2.挂载卷
3.配置数据库连接
详细建议参考dockerHub wordpress文档,以下是一个简单的yaml配置可以作为参考。

blog_l:
  image: xxxx/wordpress:latest
  privileged: false
  restart: always
  ports:
  - 8080:80
  volumes:
  - /var/lib/docker/volumes/xxxx/:/var/www/html
  environment:
  - WORDPRESS_DB_HOST=x.x.x.x:3306
  - WORDPRESS_DB_USER=root
  - WORDPRESS_DB_PASSWORD=xxxxxxx

如果需要进行域名的自动适配可以修改wp-config.php文件,如下配置。

define('WP_HOME', '/'.$_SERVER['HTTP_HOST'].'/');
define('WP_SITEURL', '/'.$_SERVER['HTTP_HOST'].'/');

nginx容器

很多时候我们需要对博客服务反向代理到80端口

server {
    listen 80;
    server_name xxxxx;
    location / {
        proxy_pass /x.x.x.x:8080;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
    }
}

flow+babel+eslint环境搭建

依赖

编辑器:vscode
vscode插件:Flow Language Support,vscode-flow-ide(选其一就好)
依赖包:babel-eslint,babel-plugin-transform-flow-strip-types,eslint-plugin-flowtype,(flow-bin可以选,运行flow服务,babel-preset-flow可选,flow官方文档用的这个)

Esint配置

.eslintrc.js 参考eslint-plugin-flowtype文档

{
  "extends":{
     "eslint:recommended",
     /"plugin:flowtype/recommended"   /无需开启只做flow检查时使用
  },
  "plugins":[
    "flowtype"
  ],
  "parser": "babel-eslint",
  "rules":{},                         /参考eslint-plugin-flowtype这个包文档根据需要配置
  "settings":{
    "flowtype":{
      "onlyFilesWithFlowAnnotation": true   /只在添加@flow注释的文件才做检查
    }
  }
}

Babel配置

.babelrc 参考transform-flow-strip-types文档

{
  "plugins": [
    "transform-flow-strip-types"
  ]
}

flow配置

npm run flow init 生成.flowconfig 文件 (生成文件需要flow-bin包,自己新建也行)
详细配置参考flow官网.flowconfig文档

[ignore]

[include]

[libs]

[lints]

[options]
esproposal.decorators=ignore   /忽略装饰器

[strict]

vscode配置

首选项=>设置 关闭vscode自带的脚本检查

{
    "javascript.validate.enable": false
}