docker-compose编排技术搭建solo个人博客

男娘i 2023-10-05 18:12 39阅读 0赞

1. 安装docker

  • CentOS

    yum install docker
    yum install docker-compose

2. 获取证书

  • 证书申请请移步:安装SSL证书

3. 修改配置文件

3.1 配置Nginx

  • 编辑nginx/conf/nginx.conf文件
  • 将所有dduan.site替换为您自己的站点
  • 然后修改下述两块证书文件名称(路径不用改,直接改证书名即可)

    ssl_certificate /etc/nginx/conf.d/dduan.site/1_dduan.site_bundle.crt;
    ssl_certificate_key /etc/nginx/conf.d/dduan.site/2_dduan.site.key;

3.2 配置docker-compose

  • 编辑docker-compose.yml文件,按照 # 后面的备注进行修改

    version: “2”

    services:
    mysql:

    1. container_name: mysql
    2. image: mysql:5.7
    3. restart: always
    4. volumes:
    5. # MySQL数据存放地址
    6. - ./mysql/data:/var/lib/mysql
    7. ports:
    8. # 6603代表宿主机端口,3306代编容器的端口
    9. - "6603:3306"
    10. environment:
    11. # mysql的root账号密码
    12. MYSQL_ROOT_PASSWORD: "adminadmin"
    13. # 在这里配置mysql的全局参数
    14. command: --max_allowed_packet=32505856

    solo:

    1. # 直接使用最新版本的solo镜像
    2. container_name: solo
    3. image: b3log/solo:latest
    4. restart: always
    5. ports:
    6. # https部署的方式不需要修改此处
    7. - "8080:8080"
    8. environment:
    9. RUNTIME_DB: "MYSQL"
    10. JDBC_USERNAME: "root"
    11. JDBC_PASSWORD: "adminadmin"
    12. JDBC_DRIVER: "com.mysql.cj.jdbc.Driver"
    13. # 此处,因为solo跟mysql同为docker容器,所以可以直接使用容器名 + 容器端口来访问
    14. JDBC_URL: "jdbc:mysql://mysql:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"
    15. # 按照solo官方要求,在solo启动之初,配置solo的域名、端口,如果是本地测试的话,将host改为localhost即可
    16. command: --listen_port=8080 --server_port= --server_scheme=https --server_host=www.dduan.site

    nginx:

    1. container_name: nginx
    2. image: nginx:latest
    3. restart: always
    4. ports:
    5. - "80:80"
    6. - "443:443"
    7. volumes:
    8. # 映射nginx目录到docker容器中
    9. - "./nginx/conf:/etc/nginx/conf.d"
    10. # 映射服务器的证书目录到docker容器中
    11. - "/docker/solo/https/cert/dduan.site:/etc/nginx/conf.d/dduan.site"
    12. # 映射www目录到docker容器中,后期您可以在这里部署自己的静态站点或者php站点
    13. - "./nginx/www/:/var/www/"

4. 启动

  • 启动命令

    docker-compose up -d

  • 停止命令

    docker-compose down

  • 查看solo日志,查看Nginx日志,只需要solo改为Nginx

    docker logs -t -f —tail 100 solo

5. 建数据库

  • 进入MySQL容器

    docker exec -it mysql bash

  • 登录MySQL

    mysql -uroot -pXXX

  • 创建solo数据库

    create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  • 退出数据库和容器,执行 exit 命令

7. 效果展示

https://www.dduan.site/

8. 注意事项

  • docker-compose 只是一个 docker 容器的编排工具,本质还是 docker 容器在运行
  • 执行docker-compose 命令需要在docker-compose.yml所在目录执行
  • 每一次命令 docker-compose 启动的时候,都会自动拉取最新 solo 的镜像,所以自动更新非常简单
  • 数据备份问题,docker 容器死亡的时候,容器内数据会自动清除,除非我们使用 volumes 构建映射关系,这里我只将最重要的 mysql 数据库文件映射在 mysql/data 目录下

9. 完整配置文件

GitHub:https://github.com/dadeity/solo-docker-compose.git

发表评论

表情:
评论列表 (有 0 条评论,39人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Solo部署问题

    遇到问题的应该时按照这两个教程来的 如果还没遇到问题 可以按这两个网站来从零开始安装Solo博客从零开始安装 solo 博客问题一 在安装 nginx时 大家要注意 ...