全部
常见问题
产品动态
精选推荐

多商户Docker Supervisor进程管理器部署

管理 管理 编辑 删除

Dockerfile

根目录下没有Dockerfile的可以复制下面的命令

# 使用基础镜像
FROM leekay0218/crmeb-mer

## 复制代码
## 在本地调试注释掉,使用映射把文件映射进去
#ADD ./ /var/www

# 设置工作目录
WORKDIR /var/www

# 设置时区为上海
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
    echo $TZ > /etc/timezone && \
    echo '[PHP]\ndate.timezone = "'$TZ'"\n' > /usr/local/etc/php/conf.d/tzone.ini

# 创建 mer_s.conf 配置文件
RUN echo "[program:mer_s]" > /etc/supervisor/conf.d/mer_s.conf && \
    echo "command=php think swoole restart" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "directory=/var/www/" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "autorestart=true" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "startsecs=3" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "startretries=3" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "stdout_logfile=/var/log/supervisor/mer_s.out.log" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "stderr_logfile=/var/log/supervisor/mer_s.err.log" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "stdout_logfile_maxbytes=2MB" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "stderr_logfile_maxbytes=2MB" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "user=root" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "priority=999" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "numprocs=1" >> /etc/supervisor/conf.d/mer_s.conf && \
    echo "process_name=%(program_name)s_%(process_num)02d" >> /etc/supervisor/conf.d/mer_s.conf

# 创建 mer_q.conf 配置文件
RUN echo "[program:mer_q]" > /etc/supervisor/conf.d/mer_q.conf && \
    echo "command=php think queue:work --tries 2" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "directory=/var/www/" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "autorestart=true" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "startsecs=3" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "startretries=3" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "stdout_logfile=/var/log/supervisor/mer_q.out.log" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "stderr_logfile=/var/log/supervisor/mer_q.err.log" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "stdout_logfile_maxbytes=2MB" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "stderr_logfile_maxbytes=2MB" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "user=root" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "priority=999" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "numprocs=1" >> /etc/supervisor/conf.d/mer_q.conf && \
    echo "process_name=%(program_name)s_%(process_num)02d" >> /etc/supervisor/conf.d/mer_q.conf

# 设置入口命令
ENTRYPOINT ["/entrypoint.sh"]

# 创建日志文件
RUN touch /var/www/service.err.log /var/www/service.out.log


Docker镜像加速器

点击链接使用支付宝登录后就能看到加速器地址和操作方法

https://cr.console.aliyun.com/cn-beijing/instances/mirrors


制作SWOOLE运行镜像

1. 进入到项目根目录看到Dockerfile文件后在当前目录打开命令行

执行命令,后面的点,一定不能缺少;创建一个叫:pro的镜像

镜像内php版本为7.4版本
docker build -t mer_test .

2. 运行镜像

docker run --name mer_test_con -itd -p 8324:8324 -v D:\crmeb\crmeb_merchant:/var/www mer_test

解释:
-v D:\crmeb\crmeb_merchant:/var/www 把本地D:\crmeb\crmeb_merchant下的文件映射到容器中的/var/www目录中这样就改了本地的文件容器内的就自动变
—name 容器名称
-p 20199:20199 映射端口
最后的参数:mer_test是镜像的名称

3. 进入容器查看

mer_test_con是上一步给容器设置的名称,其他都是固定格式

docker exec -it mer_test_con /bin/bash
# 查看supervisor管理里启动的程序
supervisorctl status

下面这样就是启动正常,如果mer_q(队列没有启动),检查一下redis是否连接正常

77548202308180947557374.png

4 supervisor简单使用

序号命令信息作用说明
1supervisorctl status产看所有进程状态
2supervisorctl stop [name]停止[name]服务
3supervisorctl start [name]启动[name]服务
4supervisorctl restart [name]重启[name]服务
5supervisorctl update重新加载配置文件
6supervisorctl reload重启配置中所有服务

把name换成all可以管理配置中的所有进程。

直接输入supervisorctl进入supervisorctl的shell交互界面,此时上面的命令不带supervisorctl可直接使用。

# 启动 supervisor
supervisord -c /etc/supervisor/supervisord.conf


5. 更多redis和mysql容器创建和使用

https://blog.csdn.net/yywCode/article/details/125537368?spm=1001.2014.3001.5502

请登录后查看

徐斗明 最后编辑于2023-09-15 09:38:44

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
回复从新到旧

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
{{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
1233
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

Always Prosperous Yang 作者
介绍一下我自己

回答

923

发布

13

经验

9276

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 开源下载 CRMEB官方论坛 帮助文档
返回顶部 返回顶部
CRMEB客服