我有一个在 AWS Elastic Beanstalk 上运行的 Owncloud 实例,我只是从 docker 部署它,所以我有一个非常简单的 Dockerrun.aws.json
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "owncloud/server:latest",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "8080",
"hostPort": "80"
}
],
"Volumes": []
}
我首先使用 SQLite 设置它,并且它运行了几天,现在我尝试使用 MariaDB 后端来设置它。
为此,我只需将环境变量添加到我的 Elastic Beanstalk 环境中:
OWNCLOUD_ADMIN_PASSWORD=<admin-password>
OWNCLOUD_ADMIN_USERNAME=admin
OWNCLOUD_DB_HOST=<my-db-host-endpoint>
OWNCLOUD_DB_NAME=owncloud
OWNCLOUD_DB_PASSWORD=<db-password>
OWNCLOUD_DB_TYPE=mysql
OWNCLOUD_DB_USERNAME=owncloud
OWNCLOUD_DOMAIN=cloud.mydomain.com
OWNCLOUD_MYSQL_UTF8MB4=true
OWNCLOUD_REDIS_ENABLED=false
然后我就部署了这个,并得到了这个日志:
Docker container quit unexpectedly after launch: moving config folder…
Linking config folder…
Writing config file…
Fixing base perms…
Fixing data perms…
Fixing hook perms…
Installing server database…
The username is already being used. Check snapshot logs for details.
我检查了数据库,但用户名不存在。我尝试使用不同的 OWNCLOUD_ADMIN_USERNAME,但没有成功。
如果我在本地运行 docker,它会运行良好,我可以正常访问它,我在本地运行时只收到过一次此错误消息,但我只需更改用户名即可。但是,EB 版本无法访问,实例一直处于“严重/故障”状态。
我也尝试过重新启动应用服务器,甚至重建环境……
我也遇到过类似的问题,但它们总是与使用 WebDAV 作为身份验证后端有关,而我的情况并非如此。在所有情况下,我都看到此错误发生在从管理界面创建新用户时,而我的情况并非如此,因为我甚至无法访问管理界面。
知道我还能做什么吗?
预期行为
Owncloud 应该正在运行并连接到正确的数据库
实际行为
Elastic Beanstalk 部署不断失败,并出现上述错误
服务器配置
大部分配置都是来自 Docker 镜像的默认配置:owncloud/server:latest
答案1
我仍然不太清楚错误发生的原因,但经过几次尝试后,错误终于消失了。
似乎已经解决这个问题的是以下步骤:
- 删除先前创建的数据库。
- 删除与 Owncloud 管理员用户相关的环境变量:
OWNCLOUD_ADMIN_PASSWORD
和OWNCLOUD_ADMIN_USERNAME
。
然后使用默认用户 admin/admin 创建实例,您只需在 Web UI 中更改密码即可。