前言
很早就想部署一套自己的发卡自动售货系统,研究了很久发现独角数卡
相对更加成熟好用,可是折腾技术三年多最怕的就是php
和Laravel
之类的语言和框架,各种权限,守护之类配置麻烦,加上如果跑在docker
里更加头疼,只能先尝试硬装
了。
按照官方教程在LNMP.org
环境下一步步的按照,涉及到需要修改php
,composer
,supoervisor
,redis
,mysql
各种依赖,最终算是完美安装成功,使用上各方面都没问题,就是感觉部署太麻烦。于是又找到某大佬制作的docker
版本 Apocalypsor/dujiaoka-docker 经过测试也很完美,部署和维护实在是方便。
但是发现基础镜像只支持X86架构
,现在甲骨文 ARM 服务器这么火,完美党无法忍受,于是又经过一天的折腾解决了ARM64 架构
的基础镜像,所有就有了本教程。
竟然瞎聊了这么多,废话不多说,首先依次感谢以下开发者,docker 制作者的无私分享。
部署
项目地址
demo 示例
准备主目录
创建一个dujiaoka
主目录用于存放所有相关配置,数据,数据库和缓存文件。
mkdir dujiaoka && cd dujiaoka
# 创建主目录
mkdir storage uploads
chmod -R 777 storage uploads
# 创建数据目录用于挂载
访问项目地址
下载env.conf
和docker-compose.yml
到上述的dujiaoka
目录中。
wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/dujiaoka/env.conf
wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/dujiaoka/docker-compose.yml
chmod -R 777 env.conf
# 重要步骤
配置 nginx 反向代理
参考domian.conf
修改域名和证书路径。
由于 ngixn 安装不同,可能具体配置和路径有所不同,但必需参考以下location ^~ /
中的相关配置。
location ^~ / {
proxy_pass http://127.0.0.1:56789;
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 X-Forwarded-Proto $scheme;
add_header X-Cache $upstream_cache_status;
proxy_set_header Accept-Encoding "";
sub_filter "http://" "https://";
sub_filter_once off;
}
启动容器
修改docker-compose.yml
中的MySQL
密码,首次启动:
docker-compose up -d
首次启动后,会自动生成mysql
和redis
的数据目录。
网页安装
访问配置好的域名进行安装:
- 将
MySQL
的地址改为db
- 将
MySQL
的用户名改为dujiaoka
- 将
Redis
的地址改为redis
- 填写网站名称
- 填写网站
url
地址(例如https://shop.ioiox.com)
点击安装,并成功安装,先修改其他参数后在进行登录使用。
停止容器
docker-compose down
将docker-compose.yml
中的INSTALL
改为false
将env.conf
中的APP_DEBUG
改为false
此时可以看到env.conf
中的相关配置已经自动变为安装时填写的参数
再次启动容器
docker-compose up -d
# 再次启动开始使用
完成部署
自此已完成安装部署,访问域名开始使用:
- 容器内含有
php
,composer
,redis
,supervisor
进程守护,任意设置都会自动生效.完全无需任何其他操作. - 所有配置,数据,缓存,数据库都存储在整个
dujiaoka
目录中,定期备份即可。 - 如需迁移服务器,仅需打包本目录到新服务器,执行上述所有
chmod 777
的权限命令,再次docker-compose up -d
即可恢复上线。
结语
感谢以下文章提供的技术支持:
50 条评论
大佬,为我安装好了之后,想改一下数据库的端口,提示connection refuse,数据库的商品是固定3306吗
我这个docker compose是单独给他起一个数据库的,在同一个docker compose 网络里,只供独角卡内部使用,也没有映射端口,不会端口冲突。没特殊情况完全没必要修改地址和端口。
如果你需要连接外部数据库,或者自定义端口,你安装时就填你数据的地址和端口就好了。
部署成功 发现上传商品图像上传不了直接提示失败
可能是文件太大了,你换个小点的先试试排除下问题。
测试了 不是图片大小的问 只要一上传图片直接就提示失败
chmod -R 777 storage uploads
前面执行这个没? 检查下权限。
执行了的 权限是777
大佬,我部署成功了,请问怎么去掉底部的Powered by @独角数卡.DJK呢,没找到静态文件
[...]我的 Demo:https://shop.uvh.ccGitHub 官方仓库:https://github.com/assimon/dujiaokaDocker 镜像地址:https://hub.docker.com/r/stilleshan/dujiaoka (同时支持 X86 和 ARM 架构)来自:Stille 大佬[...]
[...]咕咕的Demo:https://shop.gugu.eeGitHub官方仓库:https://github.com/assimon/dujiaokaDocker镜像地址:https://hub.docker.com/r/stilleshan/dujiaoka (同时支持 X86 和 ARM 架构)来自:Stille大佬[...]