crmchat 客服系统 docker 部署
1.1K
注意事项:
1、官方仓库地址:https://gitee.com/ZhongBangKeJi/CRMChat.git
2、克隆下载后只保留 public/install 安装器即可。
若想持久化上传图片,app中volumes:下补充:- ./public/uploads:/var/www/public/uploads
3、首次生成配置后,.env中尽量不要存在 引号 ,可自行更改,生成后配后重启即可。
4、首次进入建议在设置中更换密钥。
5、持久化配置创建后放到对应的目录即可。
6、进入后台设置,将网站地址改成:http://127.0.0.1:8001(也就是:ip:端口)。
通过改完的地址访问,图片才能正常上传更改。
上传等待几秒更新完缓存,可手动浏览器刷新后正常显示。
7、目录结构:(当前只列出外层文件夹)
docker-compose.yml
docker
logs
nginx
mysql
redis
public
install
.env
8、执行命令(全部配置好后):
启动:docker compose up -d
停止:docker compose down
注释:如果出现显示已经重复启动的错误,可以 进入runtime文件下查看swoole.pid文件进行处理,可以删除或者清空该文件。
services:
app:
image: sllwakeup/kefu:latest
container_name: crmchat-app
restart: unless-stopped
tty: true
environment:
# 数据库
DB_CONNECTION: mysql
DB_HOST: mysql
DB_PORT: 3306
DB_DATABASE: crmeb
DB_USERNAME: root
DB_PASSWORD: root
# Redis
CACHE_DRIVER: redis
QUEUE_CONNECTION: redis
SESSION_DRIVER: redis
REDIS_HOST: redis
REDIS_PORT: 6379
# 日志
LOG_CHANNEL: file
LOG_LEVEL: info
# 时区
TZ: Asia/Shanghai
working_dir: /var/www
volumes:
- ./.env:/var/www/.env
- ./docker/logs/php:/var/log/php
- ./public/install:/var/www/public/install
- ./public/uploads:/var/www/public/uploads
- ./runtime:/var/www/runtime
command: bash -c "rm -f /var/www/runtime/swoole.pid && php think swoole restart"
networks:
- crmchat-network
depends_on:
- mysql
- redis
deploy:
resources:
limits:
cpus: '1'
memory: 1G
healthcheck:
test: [ "CMD", "bash", "-c", "ps aux | grep 'swoole_http_server' | grep -v grep && netstat -tulnp | grep 20108" ]
interval: 30s # 每 30 秒检查一次
timeout: 10s # 检查命令超时时间(10 秒内未完成视为失败)
retries: 3 # 连续 3 次检查失败,视为容器不健康
start_period: 60s # 容器启动后,等待 60 秒再开始检查(给 Swoole 启动时间)
redis:
image: redis:6-alpine
container_name: crmchat-redis
restart: unless-stopped
ports:
- "16378:6379"
volumes:
- ./docker/redis/data:/data
- ./docker/logs/redis:/var/log/redis
tty: true
networks:
- crmchat-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
mysql:
image: mysql:8.0
container_name: crmchat-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: crmeb
MYSQL_CHARACTER_SET_SERVER: utf8mb4
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
ports:
- "33067:3306"
volumes:
- ./docker/mysql/data:/var/lib/mysql/
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/logs/mysql:/var/log/mysql
tty: true
networks:
- crmchat-network
deploy:
resources:
limits:
cpus: '1'
memory: 1G
nginx:
image: nginx:alpine
container_name: crmchat-nginx
restart: unless-stopped
ports:
- "8001:80"
depends_on:
- app
volumes:
- ./docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
- ./docker/logs/nginx:/www/wwwlogs
tty: true
networks:
- crmchat-network
deploy:
resources:
limits:
cpus: '0.3'
memory: 128M
# ======================== 网络配置 ========================
networks:
crmchat-network:
driver: bridge
.env
APP_DEBUG = false
APP_KEY = "base64:EAZi4pFIwvoC5KD9fMcQKQSlhKzsAS5xG+JPd4878vY="
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = mysql
HOSTPORT = 3306
USERNAME = root
PASSWORD = root
DATABASE = crmeb
PREFIX = eb_
CHARSET = utf8
CHARSET = utf8mb4
DEBUG = true
[REDIS]
REDIS_HOSTNAME = redis
PORT = 6379
REDIS_PASSWORD =
SELECT = 0
[CACHE]
PREFIX =
TAG_PREFIX =
[LANG]
default_lang = zh-cn
[swoole]
SWOOLE_DAEMONIZE = false
my.cnf (mysql 目录下)
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
explicit_defaults_for_timestamp
skip-grant-tables
lower_case_table_names = 1
character-set-server = utf8
collation-server = utf8_unicode_ci
sql-mode = NO_ENGINE_SUBSTITUTION
log-error = /var/log/mysql/error.log
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links = 0
!includedir /etc/mysql/conf.d/
default.conf (nginx 目录下)
server {
listen 80;
index index.php index.html;
server_name _;
root /var/www/crmchat/public;
location / {
proxy_pass http://app:20108;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
add_header X-Cache $upstream_cache_status;
add_header Cache-Control no-cache;
}
}
Content type
Image
Digest
sha256:a3e6ef05f…
Size
424.1 MB
Last updated
4 months ago
docker pull sllwakeup/kefu:1.0.3