智享评鉴

Docker 镜像部署

无需编译源码。准备好 Docker 后,用已发布的公开镜像即可自托管。

ghcr.io/ulooocom/sharelens 首次拉取公开镜像无需登录
app queue scheduler mysql redis

前置条件

1. 准备部署目录

mkdir -p /opt/sharelens && cd /opt/sharelens

下载本页托管的 Compose 与环境变量样例(也可直接点下方链接保存):

curl -fsSL -o docker-compose.yml https://ulooo.com/sharelens/docker/docker-compose.yml
curl -fsSL -o env.sample https://ulooo.com/sharelens/docker/env.sample
cp env.sample .env

创建数据与日志映射目录:

mkdir -p app_storage logs/app logs/nginx backups uploads mysql_data

2. 配置环境变量

若上一步已 cp env.sample .env,直接编辑 .env,至少设置:

# 镜像版本(按实际发布标签修改,例如 v11)
APP_IMAGE=ghcr.io/ulooocom/sharelens:v11

# Laravel 密钥(生产必须设置)
# openssl rand -base64 32  →  APP_KEY=base64:…
APP_KEY=

APP_URL=https://sharelens.example.com
APP_PORT=8080

DB_PASSWORD=请改成强密码
MYSQL_ROOT_PASSWORD=请改成另一个强密码

MAIL_HOST=smtp.example.com
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_FROM_ADDRESS=noreply@example.com

生成 APP_KEY

echo "APP_KEY=base64:$(openssl rand -base64 32)"

前面有反向代理时,保持 TRUSTED_PROXIES=* 即可。

3. 启动

docker compose up -d

首次会拉取应用、MySQL、Redis 镜像;app 容器启动时会自动执行数据库迁移。

docker compose ps
docker compose logs -f app

浏览器访问 http://服务器IP:8080(或你在 APP_URL / 反代中配置的域名)。

常用操作

# 停止(保留数据目录)
docker compose down

# 更新到新版本:先改 .env 中的 APP_IMAGE,再拉取并重建
docker compose pull
docker compose up -d

# 在 app 容器里执行 artisan
docker compose exec app php artisan migrate --force

说明