栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用Docker Compose &Halo 搭建博客

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Docker Compose &Halo 搭建博客

博客搭建
  • 使用了Halo开源博客系统,因为是Java实现的,方便自己做定制,顺便学习源码
  • 结合使用Docker Compose实现服务搭建
安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
  • 如果出现网络问题,直接用浏览器下载可执行文件放到/usr/local/bin目录下即可
准备配置文件 Nginx配置文件
mkdir -p  /root/blog/halo && mkdir -p  /root/blog/nginx/ 
echo 'server {
  listen 80;
  server_name blog.demoli.xyz;
  rewrite ^(.*)$  https://blog.demoli.xyz$1 permanent;
  }
  

  location / {
       proxy_pass    http://halo:8090;
       proxy_cache_bypass                 $http_upgrade;

       # Proxy headers
       proxy_set_header Upgrade           $http_upgrade;
       proxy_set_header Connection        "upgrade";
       proxy_set_header Host              $host;
       proxy_set_header X-Real-IP         $remote_addr;
       proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Forwarded-Host  $host;
       proxy_set_header X-Forwarded-Port  $server_port;

       # Proxy timeouts
       proxy_connect_timeout              600s;
       proxy_send_timeout                 600s;
       proxy_read_timeout                 600s;
  		}
  }' >> /root/blog/nginx/nginx.conf
  • 证书可以从阿里云免费申请,绑定到对应的域名即可,并放置到/root/blog/nginx/目录下(可以自由修改,注意与下边的yaml文件保持一致即可)
Halo配置文件
cd /root/blog/halo && wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
docker-compose yaml配置文件
version: '3.1'
services:

nginx: 
  image: nginx
  container_name: nginx
  restart: unless-stopped
  ports:
    - 443:443
    - 80:80
  volumes:
    - /root/blog/nginx/nginx.conf:/etc/nginx/conf.d/blog.conf
    - /root/blog/nginx/blog.demoli.xyz/:/etc/nginx/ssl/
halo:
  image: halohub/halo
  container_name: halo
  restart: unless-stopped
  volumes:
    - /root/blog/halo:/root/.halo' >> /root/blog/blog.yaml
  • 如果镜像下载缓慢,尝试使用阿里云的镜像加速器
配置网络与域名
  • 只需要在域名提供商,为自己购买的域名,添加A类型的子域名记录比如blog.demoli.xyz,然后将解析值设置为自己服务器的公网IP即可
启动并访问服务
  • docker-compose -f blog.yaml up -d
  • 访问域名即可
更新
  • 很简单的步骤:
  1. 数据备份(重要):cp -r ./halo ./halo.archive
  2. 关停服务:docker-compose -f blog.yaml down
  3. 更新镜像:docker pull halohub/halo
  4. 重启服务:docker-compose -f blog.yaml up -d
引入Traefik
  • Traefik是云原生时代与Docker、K8s都能配合使用的新一代网关产品,可使用Traefik替代Nginx,参考Treafik学习的案例篇章
补充
  • 推荐开启两步验证的登录方式,安全性高一点,可以在用户设置中添加
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/838647.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号