update dujiaoka

This commit is contained in:
Stille 2022-07-20 11:22:33 +08:00
parent 03b4a66950
commit fa4a9e1f0e
4 changed files with 206 additions and 1 deletions

View File

@ -1,7 +1,86 @@
# dujiaoka
GitHub [stilleshan/dockerfiles](https://github.com/stilleshan/dockerfiles)
Docker [stilleshan/dujiaoka](https://hub.docker.com/r/stilleshan/dujiaoka)
> *docker image support for X86 and ARM*
## 更新
- **2022-07-19** 更新`2.0.4`版 docker 镜像,同时支持 X86 和 ARM 架构.
- **2022-07-19** 更新`2.0.3`版 docker 镜像,同时支持 X86 和 ARM 架构.
## 简介
待优化中...
基于 🦄独角数卡 [assimon/dujiaoka](https://github.com/assimon/dujiaoka) 的 docker 镜像,支持 docker-compose 数据持久化部署。
> *本项目基于现有的 [Apocalypsor/dujiaoka-docker](https://github.com/Apocalypsor/dujiaoka-docker) 项目重新制作支持 ARM64 架构镜像,你也可以参考下文作者博客链接部署。*
## 部署
### 准备配置文件
```shell
mkdir dujiaoka && cd dujiaoka
# 创建主目录
mkdir storage uploads
chmod -R 777 storage uploads
# 创建数据目录用于挂载
```
下载本项目中的`env.conf`和`docker-compose.yml`到上述的`dujiaoka`目录中。
```shell
chmod -R 777 env.conf
# 重要步骤
```
### 配置 nginx
参考`domian.conf`修改`域名`和`证书路径`,最重要的是`location ^~ /`中的相关配置。
```nginx
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`,`env.conf`,`storage`和`uploads`后执行以下命令`首次`启动:
> *注意修改 docker-compose.yml 中的 mysql 密码*
```shell
docker-compose up -d
```
首次启动后,会自动生成`mysql`和`redis`的数据目录。
### 网页安装
访问域名开始安装:
- 将`mysql`的地址改为`db`
- 将`mysql`的用户名改为`dujiaoka`
- 将`redis`的地址改为`redis`
- 填写网站名称
- 网站 url 填写完整域名地址,例如`https://shop.ioiox.com`
点击安装,并成功安装,先修改其他参数后在进行登录使用。
```shell
docker-compose down
# 停止服务
```
将`docker-compose.yml`中的`INSTALL`改为`false`
将`env.conf`中的`APP_DEBUG`改为`false`
此时可以看到`env.conf`中的相关配置已经自动变为安装时填写的参数。
```shell
docker-compose up -d
# 再次启动开始使用
```
### 完成部署
自此已完成安装部署,访问域名开始使用:
- 所有配置,数据,缓存,数据库都存储在整个`dujiaoka`目录中,定期备份即可。
- 如需迁移服务器,仅需打包本目录到新服务器,执行上述所有`chmod 777`的权限命令,再次`docker-compose up -d`即可恢复上线。
## 链接
- [Apocalypsor/dujiaoka-docker](https://github.com/Apocalypsor/dujiaoka-docker)

View File

@ -0,0 +1,33 @@
version: "3"
services:
web:
image: stilleshan/dujiaoka
environment:
# - INSTALL=false
- INSTALL=true
# - MODIFY=true
volumes:
- ./env.conf:/dujiaoka/.env
- ./uploads:/dujiaoka/public/uploads
- ./storage:/dujiaoka/storage
ports:
- 56789:80
restart: always
db:
image: mariadb:focal
restart: always
environment:
- MYSQL_ROOT_PASSWORD=YOUR_PASSWORD
- MYSQL_DATABASE=dujiaoka
- MYSQL_USER=dujiaoka
- MYSQL_PASSWORD=YOUR_PASSWORD
volumes:
- ./mysql:/var/lib/mysql
redis:
image: redis:alpine
restart: always
volumes:
- ./redis:/data

46
dujiaoka/domain.conf Normal file
View File

@ -0,0 +1,46 @@
server {
listen 80;
server_name shop.domain.com;
return 301 https://shop.domain.com$request_uri;
}
server {
listen 443 ssl http2;
server_name shop.domain.com;
index index.html index.htm index.php default.html default.htm default.php;
ssl_certificate /usr/local/nginx/conf/ssl/domain.com.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/domain.com.key;
ssl_trusted_certificate /usr/local/nginx/conf/ssl/domain.com.cer;
ssl_stapling on;
ssl_stapling_verify on;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_tickets off;
resolver 8.8.8.8 8.8.4.4 valid=60s ipv6=off;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000" always;
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;
}
# access_log /home/wwwlogs/shop.domain.com.access.log main;
# error_log /home/wwwlogs/shop.domain.com.error.log warn;
}

47
dujiaoka/env.conf Normal file
View File

@ -0,0 +1,47 @@
APP_NAME=独角数卡
APP_ENV=local
APP_KEY=base64:hDVkYhfkUjaePiaI1tcBT7G8bh2A8RQxwWIGkq7BO18=
APP_DEBUG=true
APP_URL=http://dujiaoka.test
LOG_CHANNEL=stack
# 数据库配置
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=dujiaoka
DB_USERNAME=dujiaoka
DB_PASSWORD=YOUR_PASSWORD
# redis 配置
REDIS_HOST=redis
REDIS_PASSWORD=
REDIS_PORT=6379
BROADCAST_DRIVER=log
SESSION_DRIVER=file
SESSION_LIFETIME=120
# 缓存配置
# file 为磁盘文件 redis 为内存级别
# redis 为内存需要安装好 redis 服务端并配置
CACHE_DRIVER=redis
# 异步消息队列
# sync 为同步 redis 为异步
# 使用 redis 异步需要安装好 redis 服务端并配置
QUEUE_CONNECTION=redis
# 后台语言
## zh_CN 简体中文
## zh_TW 繁体中文
## en 英文
DUJIAO_ADMIN_LANGUAGE=zh_CN
# 后台登录地址
ADMIN_ROUTE_PREFIX=/admin
# 后台 https 支持 docker 部署无需开启
#ADMIN_HTTPS=true