Docker部署halo并实现公网访问
确保防火墙状态正在运行
在正式开始部署之前需要确保防火墙是打开的,用下面的命令检测
[root@Anhui ~]# systemctl status firewalld
如果出现running的提示则说明是运行的
安装Docker
国内使用阿里云源来加速安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装好了之后启动docker并启用docker服务
[root@Anhui ~]# systemctl start docker
[root@Anhui ~]# systemctl enable docker
手动安装docker-compose
下载最新的x86_64版本
下载完成后将二进制文件传到服务器的/root目录
安装lrzsz的rpm包便于使用rz命令上传
yum -y install lrzsz
重命名二进制文件
[root@Anhui ~]# mv docker-compose-linux-x86_64 docker-compose
赋予二进制文件可执行权限
[root@Anhui ~]# chmod +x docker-compose
移动文件
[root@Anhui ~]# mv docker-compose /usr/local/bin/
创建软链接
[root@Anhui ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
安装完成之后输入下面的命令测试,如果能输出版本号,说明安装的没有问题
[root@Anhui ~]# docker-compose version
Docker Compose version v2.24.5
全部安装过程如下
使用docker-compose部署halo
创建项目存放路径
mkdir /opt/halo && cd /opt/halo
编辑docker-compose配置文件
[root@Anhui halo]# vim docker-compose.yaml
在文件中写入以下内容
version: "3"
services:
halo:
image: halohub/halo:2.12
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
# 前面的端口可以修改成自己想要的,不一定要8090
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
- --spring.r2dbc.username=halo
# PostgreSQL 的密码,建议修改,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
- --spring.r2dbc.password=openpostgresql
- --spring.sql.init.platform=postgresql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
halodb:
image: postgres:15.4
container_name: halodb
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=openpostgresql
- POSTGRES_USER=halo
- POSTGRES_DB=halo
- PGUSER=halo
networks:
halo_network:
启动容器
[root@Anhui nginx]# docker-compose up -d
使用docker-compose部署NPM
创建项目存放目录
mkdir /opt/nginx && cd /opt/nginx
创建docker-compose配置文件
[root@Anhui nginx]# vim docker-compose.yaml
写入以下内容
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx
restart: unless-stopped
ports:
- '80:80'
- '81:81'
# 修改443端口为自己vps开放端口
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
启动容器
[root@Anhui nginx]# docker-compose up -d
使用NPM反向代理博客
最后使用NPN反向代理博客以便公网访问
最好将域名托管到Cloudflare
在Cloudflare里面创建域名解析
拿到api_key用于在NPN里面申请SSL证书
THE END
0
二维码
海报
Docker部署halo并实现公网访问
确保防火墙状态正在运行
在正式开始部署之前需要确保防火墙是打开的,用下面的命令检测
[root@Anhui ~]# systemctl status firewalld
如果出现running的提示则……
共有 0 条评论