Solo 官方提供了 docker 的部署方案,本人习惯使用 docker-compose 部署服务,docker-compose 的优点就不多提了,在此附上博客部署步骤的详细介绍。
1.更新 yum 包
yum update
2.安装必要的系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置 yum 源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.查看并选择合适的 docker 版本
yum list docker-ce --showduplicates | sort -r
5.安装 docker
yum install docker-ce-17.12.1.ce
6.docker 镜像源加速
# vim /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}
systemctl restart docker.service
1.选择最新的 docker-compose 版本并下载
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2.设置 docker-compose 执行权限
chmod +x /usr/local/bin/docker-compose
1.以下是需要新建的空文件夹目录,此处以 mysql 作为数据库,包括后文的数据库配置均以此为例
└─blog
├─mysql
│ ├─conf
│ ├─data
│ ├─init
│ └─logs
├─nginx
│ ├─cert
│ ├─conf
│ └─logs
└─solo
├─conf
└─skins
2.数据库配置文件
cd blog/mysql/conf
vim my.cnf
# my.cnf
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8mb4
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
cd blog/mysql/init
vim init.sql
# init.sql
create database if not exists `solo` character set utf8mb4 collate utf8mb4_general_ci;
3.nginx 配置文件
cd blog/nginx/conf
vim app.conf
# app.conf
server {
listen 80;
charset utf-8;
access_log /etc/nginx/log/access.log;
error_log /etc/nginx/log/error.log;
location / {
proxy_pass http://blog-solo:8080;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
}
}
4.Solo 配置文件
cd blog/solo/conf
vim latke.properties
Solo 的配置可以复制下方,也可从官方仓库下载
# latke.properties
serverScheme=http
serverHost=localhost
serverPort=8080
runtimeMode=PRODUCTION
5.Solo 皮肤文件
把最先准备好的官方皮肤,放到下面这个目录下
cd blog/solo/skins
6.docker-compose.yml配置文件
cd blog
vim docker-compose.yml
# docker-compose.yml
version: "3"
services:
blog-mysql:
image: mysql:5.7
restart: always
container_name: blog-mysql
privileged: false
ports:
- 3306:3306
networks:
- blog-extranet
environment:
- MYSQL_ROOT_PASSWORD=setapassword
volumes:
- /etc/localtime:/etc/localtime:ro
- ./mysql/conf/:/etc/mysql/
- ./mysql/data/:/var/lib/mysql/
- ./mysql/init/:/docker-entrypoint-initdb.d/
- ./mysql/logs/:/logs/
blog-solo:
image: b3log/solo
restart: always
container_name: blog-solo
privileged: false
networks:
- blog-extranet
links:
- blog-mysql
depends_on:
- blog-mysql
ports:
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime:ro
- ./solo/conf/latke.properties:/opt/solo/latke.properties:ro
- ./solo/skins/:/opt/solo/skins/:ro
environment:
- RUNTIME_DB=MYSQL
- JDBC_USERNAME=root
- JDBC_PASSWORD=setapassword
- JDBC_DRIVER=com.mysql.cj.jdbc.Driver
- JDBC_URL=jdbc:mysql://blog-mysql/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
blog-nginx:
image: nginx:1.14
restart: always
container_name: blog-nginx
privileged: false
networks:
- blog-extranet
links:
- blog-solo
depends_on:
- blog-solo
ports:
- 80:80
- 443:443
volumes:
- /etc/localtime:/etc/localtime:ro
- ./nginx/conf/:/etc/nginx/conf.d/
- ./nginx/cert/:/etc/nginx/cert/
- ./nginx/logs/:/etc/nginx/log/
networks:
blog-extranet:
driver: bridge
(皮一下)其实可以跳过步骤三
配置我都准备好了,步骤三只是为了让大家熟悉下过程,大家可以从我的 blog 仓库地址:https://github.com/YYJeffrey/blog 下载所有的配置包括皮肤。
该仓库下拉后是直接可以通过 docker 运行的,当然为保障站点安全性,需要修改几处配置,包括 docker-compose.yml 里的两处 setapssword
,以及需要将 latke.properties
的 serverHost
改成自己服务器的域名或者 IP 地址。
1.运行
cd blog
docker-compose up -d
2.停止
cd blog
docker-compose rm -svf
最后,如果各位朋友如果有更好的优化建议的话,可以一起交流学习。
感谢,我个人出现的问题,有 init 建库 sql 没有被执行,去容器里添加库。然后继续执行“docker-compose up -d“,目前小图标加载速度比较满,其他都可以了。
好了,谢了
好了,谢了
我试了更新了下,是因为皮肤渲染失败了,可能是你的皮肤还没更新,你可以先使用官方的皮肤,把 skins 文件夹换成最新的就行,或者重新拉一下这个项目 https://github.com/YYJeffrey/blog 。
我试了更新了下,是因为皮肤渲染失败了,可能是你的皮肤还没更新,你可以先使用官方的皮肤,把 skins 文件夹换成最新的就行,或者重新拉一下这个项目 https://github.com/YYJeffrey/blog 。
大佬,请问你是怎么升级 solo 版本的,我升级就报错了
大佬,请问你是怎么升级 solo 版本的,我升级就报错了
我修改了 docker-compose 的部分配置,刚刚我试着在自己的纯净的虚拟器里下拉可以正常运行
建议从 https://github.com/YYJeffrey/blog 下拉源码运行
下拉后只需要将 serverHost 改成自己的域名或 IP 地址即可正常运行的,还有一点就是 docker-compose 两处 setapassword 要保持一直才行。
其他有什么遇到的问题可以在上述仓库直接提 issues 给我,我会在第一时间回复。
我修改了docker-compose的部分配置,刚刚我试着在自己的纯净的虚拟器里下拉可以正常运行
建议从 https://github.com/YYJeffrey/blog 下拉源码运行
下拉后只需要将serverHost改成自己的域名或IP地址即可正常运行的,还有一点就是docker-compose两处setapassword要保持一直才行。
其他有什么遇到的问题可以在上述仓库直接提issues给我,我会在第一时间回复。
加了还是报错
加了还是报错
你好,如果容器启动了的话,可能是 latke.properties 配置的问题,看看是否已经改成了自己的域名或 IP。
如果是下图的问题,也可以试下官方的处理方法。
你好,如果容器启动了的话,可能是latke.properties配置的问题,看看是否已经改成了自己的域名或IP。
如果是下图的问题,也可以试下官方的处理方法。
您好,我参照着你的教程弄的,docker-compose 我用的是18.06.0版的,启动后访问页面报:latke 配置错误,请问是什么导致的呢?
您好,我参照着你的教程弄的,docker-compose 我用的是 18.06.0 版的,启动后访问页面报:latke 配置错误,请问是什么导致的呢?
谢谢哈
谢谢哈
支持 J 兄 👍
支持J兄👍
同乐同乐😁
同乐同乐 😁
今儿是祖国大庆,各位节日快乐!
今儿是祖国大庆,各位节日快乐!