Docker部署Halo博客
Docker部署Halo博客 方式一:Halo + MySQL (docker-compose.yml) 1. 创建目录和 yml 文件 cd /home && mkdir halo && cd halo && touch docker-compose.yml 2. 编写 yml 文件,默认拉取最新的版本 docker-compose.yml version: "3" services: halo: image: halohub/halo restart: on-failure:3 depends_on: halodb: condition: service_healthy networks: halo_network: volumes: - ./halo2:/root/.halo2 ports: - "65510: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:mysql://halodb:3306/halo - --spring.r2dbc.username=root # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。 - --spring.r2dbc.password= - --spring.sql.init.platform=mysql # 外部访问地址,请根据实际需要修改 - --halo.external-url=http://104.233.220.103:65510/ halodb: image: mysql:8.1.0 restart: on-failure:3 networks: halo_network: command: - --default-authentication-plugin=caching_sha2_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true volumes: - ./mysql:/var/lib/mysql - ./mysqlBackup:/data/mysqlBackup healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"] interval: 3s retries: 5 start_period: 30s environment: # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值 - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=halo networks: halo_network: 3. 执行启动命令 docker-compose up -d 方式二:Halo (docker-compose.yml) 1. 创建目录和 yml 文件 cd /home && mkdir npm && cd npm && touch docker-compose.yml && vim docker-compose.yml 2. 编辑 yml 文件 镜像版本的 tag 自己去选取最新的 docker-compose.yml version: "3.8" services: halo: image: halohub/halo:sha-ae274db restart: on-failure:3 network_mode: "host" volumes: - ./halo2:/root/.halo2 command: # 修改为自己已有的 MySQL 配置 - --spring.r2dbc.url=r2dbc:pool:mysql://IP:port/数据库名 - --spring.r2dbc.username= - --spring.r2dbc.password= - --spring.sql.init.platform=mysql # 外部访问地址,请根据实际需要修改 - --halo.external-url=http://localhost:65506/ # 端口号 默认8090 - --server.port=8090
