快速搭建个人博客

介绍

官网 Halo

一款现代化的开源博客/CMS系统

使用dockercompose 快速搭建

搭建环境

  • centos7
  • docker
  • docker-compose

安装docker

  1. 先在centos7中安装gcc
1.先在centos7中安装gcc
yum -y install gcc

2.安装gcc-c++
yum -y install gcc-c++
  1. 下载docker引擎前的配置
 sudo yum install -y yum-utils
 sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum软件包索引
yum makecache fast
  1. 安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. 启动docker
sudo systemctl start docker
  1. 测试
docker version

安装docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --version 

编写docker-compose.yml

创建 Halo + MySQL + Redis 的实例

在系统任意位置创建一个文件夹,此文档以 ~/halo-app 为例

mkdir ~/halo-app && cd ~/halo-app

安装mysql5.7

配置挂载目录

  • 新建/mydata/mysql/log文件夹
  • 新建/mydata/mysql/data文件夹
  • 新建/mydata/mysql/conf文件夹
  • 然后进入conf

配置字符集 vim my.cnf

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8 

启动容器,MYSQL_ROOT_PASSWORD密码请自己填入

docker run -d -p 3306:3306 --privileged=true -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=密码  -e MYSQL_DATABASE=halodb  --name mysql mysql:5.7

编写docker-compose.yaml

vim docker-compose.yaml

yaml 内容如下:

填入数据库的密码

version: "3"

services:
  halo:
    image: halohub/halo:2.10
    container_name: halo
    restart: on-failure:3
    network_mode: "host"
    volumes:
      - ./halo2:/root/.halo2
    command:
      # 修改为自己已有的 MySQL 配置
      - --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/halodb
      - --spring.r2dbc.username=root
      - --spring.r2dbc.password=
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/
      # 端口号 默认8090
      - --server.port=8090


启动 Halo 服务

docker-compose up -d

然后在浏览器进入ip/console/ 地址就可以对博客初始化了

配置nginx

首先需要随便创建一个nginx的容器实例

docker run -p 80:80 --name nginxDemo nginx

在主机/mydata/下创建nginx目录

mkdir nginx & cd nginx

然后把nginxDemo容器内的conf目录拷贝到主机下

docker cp nginxDemo:/etc/nginx nginx

把考出来的nginx目录重新命名为conf

mv nginx conf

把nginxDemo容器删除

docker rm -f nginxDemo

正式创建nginx实例

docker run -p 80:80 --name nginx --privileged=true \
 -v /mydata/nginx/html:/usr/share/nginx/html \
 -v /mydata/nginx/logs:/var/log/nginx \
 -v /mydata/nginx/conf/:/etc/nginx \
 -d nginx:1.10

在conf/conf.d目录中 复制一份nginx.conf

cp default.conf blog_nginx.conf

修改 blog_nginx.conf, 让80端口转发8090端口

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
    # 输入自己的ip地址
        proxy_pass   http://ip:8090;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

重启nginx

docker restart nginx

可以直接使用ip地址访问自己的博客了

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值