[图片] 下载镜像 docker pull b3log/solo 方式 1:使用 H2 数据库 docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 \ --env RUNTIME_DB='H2' \ ..

使用 Docker 搭建 solo 个人博客

下载镜像

docker pull b3log/solo

方式 1:使用 H2 数据库

docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 \
    --env RUNTIME_DB="H2" \
    --env JDBC_DRIVER="org.h2.Driver" \
    --env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL" \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=8080

程序启动后,使用: http://localhost:8080,就可以使用了

这种方式一般就用来进行一下演示

方式 2:使用 MySQL 数据库

docker run --detach --name solo  \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --publish 8080:8080 \
    --link mysql7:mysql7 \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
    --env JDBC_URL="jdbc:mysql://mysql7:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
    --volume /Users/mac/work/open-source/solo-skins/:/opt/solo/skins/ \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=8080

这里使用的 MySQL 数据库是同一宿主机上使用 Docker 搭建起来的,所以使用了--link

如果使用的是外部数据库,就不需要了,直接填写能够访问到的数据库域名或 ip 即可

/opt/solo/skins/,这个是皮肤目录。

我们可以把官方提供的皮肤下载到对应的外部目录,进行配置

方案 3:使用 Nginx 反向代理

正式环境的话,我们一般会使用外部 MySQL+Nginx 反向代理的方式进行部署

docker run --detach --name solo  \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --publish 8080:8080 \
    --link mysql7:mysql7 \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
    --env JDBC_URL="jdbc:mysql://mysql7:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
    --volume /Users/mac/work/open-source/solo-skins/:/opt/solo/skins/ \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=www.zhangln.com --server_port=
upstream backend {
    server localhost:8080; # Solo 监听端口
}

server {
    listen       80;
    server_name  www.zhangln.com; # 博客域名

    access_log off;

    location / {
        proxy_pass http://backend$request_uri;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

方案 4:docker-compose 一键部署

重点来介绍一下这种

基本思路是,将 nginx、solo、MySQL,都部署在一台服务器上

https://github.com/liumapp/solo-in-docker

视频教程

下载镜像

docker pull b3log/solo

方式 1:使用 H2 数据库

docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 \
    --env RUNTIME_DB="H2" \
    --env JDBC_DRIVER="org.h2.Driver" \
    --env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL" \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=8080

程序启动后,使用: http://localhost:8080,就可以使用了

这种方式一般就用来进行一下演示

方式 2:使用 MySQL 数据库

docker run --detach --name solo  \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --publish 8080:8080 \
    --link mysql7:mysql7 \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
    --env JDBC_URL="jdbc:mysql://mysql7:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
    --volume /Users/mac/work/open-source/solo-skins/:/opt/solo/skins/ \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=8080

这里使用的 MySQL 数据库是同一宿主机上使用 Docker 搭建起来的,所以使用了--link

如果使用的是外部数据库,就不需要了,直接填写能够访问到的数据库域名或 ip 即可

/opt/solo/skins/,这个是皮肤目录。

我们可以把官方提供的皮肤下载到对应的外部目录,进行配置

方案 3:使用 Nginx 反向代理

正式环境的话,我们一般会使用外部 MySQL+Nginx 反向代理的方式进行部署

docker run --detach --name solo  \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --publish 8080:8080 \
    --link mysql7:mysql7 \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
    --env JDBC_URL="jdbc:mysql://mysql7:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
    --volume /Users/mac/work/open-source/solo-skins/:/opt/solo/skins/ \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=www.zhangln.com --server_port=
upstream backend {
    server localhost:8080; # Solo 监听端口
}

server {
    listen       80;
    server_name  www.zhangln.com; # 博客域名

    access_log off;

    location / {
        proxy_pass http://backend$request_uri;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

方案 4:docker-compose 一键部署

重点来介绍一下这种

基本思路是,将 nginx、solo、MySQL,都部署在一台服务器上

https://github.com/liumapp/solo-in-docker

视频教程

正在录制,敬请期待

  • Solo

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

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

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

    924 引用 • 7008 回帖 • 664 关注
回帖
请输入回帖内容...