[图片] 安装 docker yum install curl -y && curl -fSsL get.docker.com |CHANNEL=stable sh systemctl start docker systemctl enable docker docker version docker ..

Solo 博客 docker 部署笔记

yum install curl -y && curl -fSsL get.docker.com |CHANNEL=stable sh 
systemctl start docker 
systemctl enable docker 
docker version
# MYSQL_ROOT_PASSWORD=你的数据库密码 
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:latest
# docker安装的mysql默认允许远程连接,可以使用Navicat等软件连接数据库 
# 进入容器
mysql docker exec -it mysql bash 
# 进入数据库 p后面跟你的密码 
mysql -uroot -ppassword
# 创建数据库(数据库名:solo;字符集utf8mb4;排序规则utf8mb4_general_ci)
create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;  
#创建成功后退出数据库 ,退出容器  
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="password" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
--rm \
b3log/solo --listen_port=8080 --server_scheme=http --server_host=<ip address>

Note:
--listen_port=8080 监听的端口
--server_scheme=http 请求方式,暂时使用 http,后面我们会换成 https
--server_host= 你的域名或者 IP,如果你没有域名可以写 IP 地址
--rm 因为这个容器后面要删掉,带上 rm 会省很多事

mkdir -p /solo/nginx/html  
mkdir /solo/nginx/ssl
mkdir /solo/nginx/conf
mkdir /solo/nginx/logs
docker run --name nginx -p 80:80 -d --rm nginx  #启动一个nginx容器
docker cp nginx:/etc/nginx/nginx.conf  /solo/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /solo/nginx/conf/conf.d
docker stop nginx

docker run -d -p 80:80 --name nginx \
-v /solo/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /solo/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /solo/nginx/www:/usr/share/nginx/html \
-v /solo/nginx/logs:/var/log/nginx nginx
echo "<h1>hello solo blog</h1>" >/solo/nginx/html/index.html
此时就可以在浏览器里面测试了,IP:8080

vim /solo/nginx/conf.d/default.conf
http的server区域添加:
location / {
        proxy_pass http://IP:8080;  #添加此行,IP填写你具体的IP地址或者域名
    }
docker restart nginx  # 重启nginx使配置生效

  1. 目前以发现的问题:

    如果部署 docker 部署 solo 的时候不是用的 5.6 版本的 MySQL,你用的是最新的 mysql:lastest 版本,后面 solo 有肯能起不来,需要在数据库创建完成再做一步给远程登陆授权和本地授权,不然 solo 有可能因为授权问题,solo 连不上数据库。

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    877 引用 • 6713 回帖 • 669 关注
  • 安装

    你若安好,便是晴天。

    80 引用 • 1013 回帖
2 回帖
请输入回帖内容...
  • InkDP

    通过 80 端口访问的话 不需要 nginx,--server_port=就可以了

  • hubowestlife

    是的,已经搞定了,感谢大佬