目前 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博客系统