docker搭建个人博客halo

目前 Halo 官方的 Docker 镜像暂时不支持 ARM 架构。

环境 版本
centos 7.6
halo 1.4.2
docker 20.10.1

1.创建工作目录

[root@aliyun ~]# mkdir ~/.halo 
[root@aliyun ~]# cd ~/.halo

2.下载示例配置文件到工作目录

wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

3.编辑配置文件,配置数据库或者端口等,如需配置请参考配置

server:
  port: 8090
  # Response data gzip.
  compression:
    enabled: false
spring:
  datasource:
    # H2 database configuration.
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: admin
    password: 123456
    # MySQL database configuration.
#    driver-class-name: com.mysql.cj.jdbc.Driver
#    url: jdbc:mysql://mysql:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
#    username: root
#    password: 123456
  # H2 database console configuration.
  h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false
halo:
  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin
  # memory or level
  cache: memory

注意事项:

  • url 为默认的数据本地存储地址,请勿修改。
  • 默认的数据库账户和密码为 admin 和 123456,建议将其修改,并妥善保存(此用户名和密码在 Halo 第一次启动的时候将自动创建)。
  • 线上环境中,h2 的配置使用默认即可。如果需要手动修改一些数据,可将 web-allow-others 和 enabled 设为 true 来开启 h2 控制台,访问路径为 ip:端口/h2-console。JDBC URL,username,password 使用配置文件中的即可。

4.拉取最新的 Halo 镜像

docker pull ruibaby/halo

5.创建容器并挂载数据

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always ruibaby/halo
  • -it: 开启输入功能并连接伪终端
  • -d: 后台运行容器
  • –name: 为容器指定一个名称
  • -p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置
  • -v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
  • –restart: 建议设置为 always,在 Docker 启动的时候自动启动 Halo 容器。

6.打开 http://ip:端口号 即可开始进入安装引导界面。

7.配置域名访问

nginx服务器

upstream halo {
  server 127.0.0.1:8090;
}
server {
  listen 80;
  listen [::]:80;
  server_name www.youdomain.com; #将域名换为自己的域名
  client_max_body_size 1024m;
  location / {
    proxy_pass http://halo;
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

8.域名直接访问halo博客系统

你可能感兴趣的:(docker,linux)