Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

提示登录信息有误 #158

Open
yangmengren opened this issue Mar 25, 2024 · 12 comments
Open

提示登录信息有误 #158

yangmengren opened this issue Mar 25, 2024 · 12 comments
Assignees
Labels
文档纠错 优化或纠正文档内容

Comments

@yangmengren
Copy link

先确认

1,是否使用最新版本。
答:是

2,是否有跳过应用处理逻辑,而自行修改数据库结构、数据等操作。
答:否

3,是否有二次开发操作。
答:否

再描述

1,你的 PHP 、 MySQL 版本号。
答:容器环境

2,当前使用的 CAT 版本号。
答:最新

3,你遇到了什么问题,尽量描述清楚,尤其是附上错误内容。
答:部署完成后(4,在容器中执行 php artisan cat:update,确认是否在 /var/www 目录中,默认于此。),使用账号admin@localhost.com/admin ,提示登录信息有误。在mysql中添加用户数据也不行,不知道是不是bug,在没有执行第4部分时,可以进行登录,幸苦作者了
image

@rakuten
Copy link

rakuten commented Mar 25, 2024

看commit,问题已经修复,2b89045

但没有打包docker镜像,所以....

下载最新源码,然后重新build一下
docker build -t cat:1.0.5-1

先运行一下(注意不要带env)
docker run -itd
--name cat
-v $NFS/cat/data:/var/www/database/data
-v $NFS/cat/public:/var/www/storage/app/public
cat:1.0.5-1

进容器
docker exec -it cat /bin/bash

运行安装程序
php artisan cat:install

退出容器,重新带.env运行cat

@rakuten
Copy link

rakuten commented Mar 25, 2024

1.0.5与目前最新的源码的确有问题(或是说明内容不全)

docker初次运行(不带.env引用)无法生成database.sqlite,也不会初始化数据库

所以只能手动初始化一遍

希望作者大大有空的时候能确认下问题

@celaraze celaraze self-assigned this Mar 26, 2024
@celaraze
Copy link
Owner

文档问题,docker 部署应该需要 docker cp /xxx/.env.example .env ,我后续完善下文档说明。

@celaraze celaraze added the 文档纠错 优化或纠正文档内容 label Mar 26, 2024
@yangmengren
Copy link
Author

文档问题,docker 部署应该需要 ,我后续完善下文档说明。docker cp /xxx/.env.example .env
我之前cp的www/.env文件,感谢作者

@rakuten
Copy link

rakuten commented Mar 26, 2024

文档问题,docker 部署应该需要 docker cp /xxx/.env.example .env ,我后续完善下文档说明。

我困惑的是,database.sqlite没有生成,确定跟复制哪个env文件有关吗?.....

数据库初始化是通过php artisan cat:install来做的

但如果Dockerfile以外的地方没有执行这个命令,那理论上来讲,数据库永远不会被初始化

除非多加一步,像env一样通过docker cp把镜像里的database.sqlite复制出来

@rakuten
Copy link

rakuten commented Mar 26, 2024

而且复制/xxx/.env.example的话,APP_KEY的值可能还需要更去手工生成,作者可能也需要再考虑下这个问题.....

@celaraze
Copy link
Owner

无论是 APP_KEY 还是数据库,都是使用 php artisan cat:install 实现,即使数据库文件不存在也会自动创建,这是通过 Laravel 自带的命令 php artisan migrate 实现的。

问题在于,docker 部署需要启动两次容器,目的是:
第一次启动容器为了复制 .env.example 为一份 .env 并修改其中配置,然后执行 php artisan cat:install,由于此时 .env 文件在 docker 中生成,我们在启动容器的时候还没有这个文件,固然无法 -v 挂载出来。配置完成后,就执行 docker cp 拷贝到宿主机。
第二次启动容器是为了 -v 挂载这个 .env 文件,此时已经持久化配置。

@yangmengren
Copy link
Author

两位大佬,我cp出来了.env,并修改了.env.example,并改名.env ,但是最后还是有报错,500 | SERVER ERROR

@rakuten
Copy link

rakuten commented Mar 27, 2024

无论是 APP_KEY 还是数据库,都是使用 php artisan cat:install 实现,即使数据库文件不存在也会自动创建,这是通过 Laravel 自带的命令 php artisan migrate 实现的。

问题在于,docker 部署需要启动两次容器,目的是: 第一次启动容器为了复制 .env.example 为一份 .env 并修改其中配置,然后执行 php artisan cat:install,由于此时 .env 文件在 docker 中生成,我们在启动容器的时候还没有这个文件,固然无法 -v 挂载出来。配置完成后,就执行 docker cp 拷贝到宿主机。 第二次启动容器是为了 -v 挂载这个 .env 文件,此时已经持久化配置。

问题是php artisan cat:install无论在第一次还是第二次都没有执行

Dockerfile里写的只是在build的时候执行了,运行容器并不会执行

@rakuten
Copy link

rakuten commented Mar 27, 2024

两位大佬,我cp出来了.env,并修改了.env.example,并改名.env ,但是最后还是有报错,500 | SERVER ERROR

用.env.example是会有这个问题(用.evn.docker)就不会

你按我上面写的步骤来就能正常跑了(主要就是为了手动执行一下php artisan cat:install)

目前main分支代码我确定可以用,你另一个issues里build没成功应该是安装时的网络问题

@celaraze
Copy link
Owner

两位大佬,我cp出来了.env,并修改了.env.example,并改名.env ,但是最后还是有报错,500 | SERVER ERROR

用.env.example是会有这个问题(用.evn.docker)就不会

你按我上面写的步骤来就能正常跑了(主要就是为了手动执行一下php artisan cat:install)

目前main分支代码我确定可以用,你另一个issues里build没成功应该是安装时的网络问题

我不知道纠结什么问题,我刚试了以下命令:

docker run -itd -p 8000:8000 \
-v cat_database:/var/www/database/data \
-v cat_storage:/var/www/storage \
--name cat celaraze/cat

直接启动并可以登录,使用 dockerhub 上面编译好的镜像是不需要做上面复杂的动作。
启动后 .env 文件会自动创建,只是此时这个文件没有持久化,所以要 docker cp 出来以下次启动通过 -v 挂载。

如果是自己 docker build . 也是没问题的,我的 docker 编译工作都是让 github 执行工作流自动通过 dockerfile 实现,如果有问题编译会无法通过。

@rakuten
Copy link

rakuten commented Apr 19, 2024

两位大佬,我cp出来了.env,并修改了.env.example,并改名.env ,但是最后还是有报错,500 | SERVER ERROR

用.env.example是会有这个问题(用.evn.docker)就不会
你按我上面写的步骤来就能正常跑了(主要就是为了手动执行一下php artisan cat:install)
目前main分支代码我确定可以用,你另一个issues里build没成功应该是安装时的网络问题

我不知道纠结什么问题,我刚试了以下命令:

docker run -itd -p 8000:8000 \
-v cat_database:/var/www/database/data \
-v cat_storage:/var/www/storage \
--name cat celaraze/cat

直接启动并可以登录,使用 dockerhub 上面编译好的镜像是不需要做上面复杂的动作。 启动后 .env 文件会自动创建,只是此时这个文件没有持久化,所以要 docker cp 出来以下次启动通过 -v 挂载。

如果是自己 docker build . 也是没问题的,我的 docker 编译工作都是让 github 执行工作流自动通过 dockerfile 实现,如果有问题编译会无法通过。

纠结的是SQLLite没有被创建,你可以试下挂载全新的空目录,用你的流程能不能跑起来

目前看来这个问题不止发生在我一个人身上

原因我也说了,php artisan cat:install没有被执行,没有地方能执行到这个命令

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
文档纠错 优化或纠正文档内容
Projects
None yet
Development

No branches or pull requests

3 participants