Mac下使用Docker安装CREMEB-PRO宝塔环境

在这里,我们将在在Mac下本地使用Docker安装CREMEB-PRO宝塔环境,以完成本地环境搭建,便于二次开发。

1. 初始安装宝塔

1.1. 下载centos7镜像

比如笔者的阿里云服务器(测试环境)使用的系统为:CentOS 7.9.2009 x86_64(Py3.7.9),那么我们下载centos7即可。

bash 复制代码
docker pull centos:7

1.2. 创建宝塔数据卷

我们需要创建一个名为 baota 的 Docker 数据卷(volume)。

bash 复制代码
docker volume create baota

1.3. 创建并启动容器

bash 复制代码
docker run -tid --name baota -p 80:80 -p 443:443 -p 20:20 -p 21:21 -p 8888:8888 -p 888:888 -p 8022:8022 -p 8282:8282 -p 3306:3306 -p 6379:6379 --privileged=true --restart always --shm-size=4g -v baota:/www -v ~/code/company:/www/wwwroot centos:7

1.4. 进入容器安装宝塔

D-Bus错误可以忽略

1、进入该实例终端shell

docker exec -it baota /bin/bash

2、进入root的home目录

cd

3、下载宝塔安装脚本(开心版,无需绑定手机号)

curl -sSO http://v9.btkaixin.net/install/install_6.0.sh

4、执行安装

sh install_6.0.sh

安装出现DBUS的错误,这个不影响我们使用宝塔,可以不用管

5、修改bt登录默认端口为8888

容器中输入bt 回车 -> 8 回车 -> 8888 回车

1.5. 访问本地宝塔

1.6. 安装参考

2. 宝塔安装CrmebPro

2.1. 软件安装

CRMEB pro v3.12.软件安装 - CRMEB文档

这里我们分别通过宝塔的软件商店安装:

  • Nginx最新版
  • MySQL8.0
  • PHP8.0
  • Redis最新版

Supervisor管理器暂时无法使用,因为Docker的容器机制。但是不影响我们使用,我们可以直接在通过进去Docker容器内执行php think swoole执行项目即可。

2.2. 网站HTTPS问题

由于我们使用的是本机开发环境,域名 www.crmebtest.com 没有在公共 DNS 服务器上注册,因此无法通过 DNS 查询解析,这就是导致验证失败的原因。

为了解决这个问题,我们可以采取以下方法:

2.2.1. 通过本地 DNS 解析解决

你已经将 127.0.0.1 www.crmebtest.com 添加到了 /etc/hosts 文件中,这样本机应该能解析该域名,但外部服务器无法解析此域名。因此,域名验证过程无法通过。接下来我们需要使用本地开发环境的自签名证书。

2.2.2. 使用本地开发环境的自签名证书

我们目的是在本地开发中测试 SSL 证书,而不是让外部 DNS 解析这个域名,可以选择为该域名创建自签名证书,并在本机的浏览器或容器中信任该证书。这样就可以绕过外部 DNS 解析的限制,进行本地的 HTTPS 访问。

2.2.2.1. 创建自签名证书的步骤
2.2.2.1.1. 生成自签名证书

使用 OpenSSL 生成自签名证书:

复制代码
openssl req -x509 -newkey rsa:4096 -keyout www.crmebtest.com.key -out www.crmebtest.com.crt -days 365 -nodes

在生成证书时,OpenSSL 会要求你输入一些信息来完成证书的创建。输入完这些信息后,证书文件和密钥文件会被生成,分别是 www.crmebtest.com.crtwww.crmebtest.com.key

2.2.2.1.2. 将证书和密钥添加到宝塔

在宝塔面板中,为 www.crmebtest.com 配置 SSL。

右键查看www.crmebtest.com.crtwww.crmebtest.com.key文件内容,分别填入证书(PEM格式)和密钥(KEY)并保存。

2.2.2.1.3. 信任证书

在我们的开发机器和容器中,需要将自签名证书添加到受信任的证书列表中,这将 .crt 文件添加到钥匙串中,设置为始终信任。

在 macOS 中,将 .crt 文件添加到钥匙串后,你可以设置该证书为"始终信任"以确保它被系统或应用程序始终信任。请按照以下步骤操作:

2.2.3. 打开钥匙串访问

  • 在 Mac 上,点击顶部的 放大镜图标 ,然后输入 "钥匙串访问",点击打开。
  • 你也可以在 应用程序 > 实用工具 中找到 钥匙串访问
2.2.3.1. .crt 文件

如果你还没有将 .crt 文件添加到钥匙串中,可以按照以下步骤导入:

  • 在钥匙串访问中,点击 文件 > 导入项 ,然后选择你的 .crt 文件进行导入。
2.2.3.2. 查找证书
  • 在钥匙串访问窗口的左侧,选择 "系统""登录" 钥匙串,具体取决于你将证书添加到哪个钥匙串。
  • 在右侧的搜索框中,输入你的证书名称或者 .crt 文件的名称来查找它。
2.2.3.3. 设置为始终信任
  • 找到并双击你的证书,这会打开证书的详细信息窗口。
  • 在证书的窗口中,点击 信任 部分,展开它。
  • "使用此证书时" 的选项中,选择 "始终信任"
  • 关闭证书窗口后,系统会要求你输入管理员密码来确认更改
相关推荐
hi,编程哥3 小时前
Docker、ECS 与 K8s 网段冲突:解决跨服务通信中的路由问题
docker·容器·kubernetes
How_doyou_do3 小时前
项目全栈实战-基于智能体、工作流、API模块化Docker集成的创业分析平台
运维·docker·容器
是垚不是土7 小时前
探秘高可用负载均衡集群:企业网络架构的稳固基石
运维·服务器·网络·云原生·容器·架构·负载均衡
杰克逊的日记7 小时前
大规模k8s集群怎么规划
云原生·容器·kubernetes
luck_me57 小时前
K8S已经成为了Ai应用运行的平台工具
人工智能·容器·kubernetes
xbd_zc8 小时前
【Jenkins简单自动化部署案例:基于Docker和Harbor的自动化部署流程记录】
docker·自动化·jenkins·harbor
Eloudy8 小时前
MacOS 上构建 gem5
linux·运维·macos
matrixlzp9 小时前
K8S Ingress、IngressController 快速开始
云原生·容器·kubernetes
我的璨宝宝啊9 小时前
linux小主机搭建自己的nas(三)docker安装nextcloud
linux·运维·docker
大米☋9 小时前
GitLab搭建与使用(SSH和Docker)两种方式
docker·ssh·gitlab