我正在使用docker compose运行Mura CMS实例(使用config / docker / local-mysql / docker-compose.yml)并收到以下错误:
db.getCollection("enrollments").aggregate(
{
"$project": {
"enrollments": {
"$filter": {
"input": "$enrolled",
"as": "enrollment",
"cond": {
"$and": [
{
"$eq": [
"$$enrollment.enrolled",
"01"
]
},
{
"$let": {
"vars": {
"daysdiff": {
"$divide": [
{
"$subtract": [
"$dateActivated",
{
"$add": [
"$dateJoined",
{
"$multiply": [
"$$enrollment.day",
86400 * 1000
]
}
]
}
]
},
86400 * 1000
]
}
},
"in": {
"$or": [
{
"$and": [
{
"$lt": [
"$$daysdiff",
150
]
},
{
"$gt": [
"$$daysdiff",
0
]
}
]
},
{
"$and": [
{
"$lt": [
"$$daysdiff",
0
]
},
{
"$gt": [
"$$daysdiff",
-120
]
}
]
}
]
}
}
}
]
}
}
}
}
})
这是我的Docker-compose.yml的副本,它是Blue River与Mura分发的标准yml文件。除了从端口8080到端口80的更改之外,它没有被修改。
500 Error
Error Executing Database Query.
Datasource:nodatabase
SQL:SELECT IF('muradb' IN(SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA), 1, 0) AS found
Code:n/a
Type:Database
Timed out trying to establish connection
任何可能出错的想法?
答案 0 :(得分:0)
您的问题是您修改了ports
文件中的docker-compose.yml
。
左侧是host
...或您的local
机器。右侧是容器的网络端口,您不应该更改它。所以,在mura_mysql_cfml
服务下尝试:
ports:
- "80:8080"
此外,在environment:
设置下,我将完全省略PORT: 80
环境变量。原因是因为该端口未在底层Docker镜像中公开。
编辑:
另外,我刚注意到你没有使用默认图片。这很关键!您尝试使用的图像中甚至没有Mura CMS。这意味着您必须提供它,或将其作为卷安装到/app
目录中。
巧合的是,我正在为一些用户(例如你自己)整理一些示例图片和docker-compose.yml
文件。它仍在继续,但我认为你应该看一下存储库:
https://github.com/blueriver/docker-muracms
希望这有帮助!
答案 1 :(得分:-1)
由于某种原因,docker堆栈中的Web服务器无法访问mysql服务器。
你是如何执行docker-compose的? 如果你在Mura中尝试其他docker-compose文件,你会得到任何不同的结果吗?
另外,您是否尝试过安装Kitematic?它提供了很多关于docker容器和图像的可视化数据。