Mura CMS / Docker Compose 连接到数据库
Mura CMS / Docker Compose Connect to Database
我是 运行 一个 Mura CMS 实例,使用 docker 撰写(使用 config/docker/local-mysql/docker-compose.yml)并收到以下错误:
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
这是我的 Docker-compose.yml 的副本,这是 Blue River 随 Mura 分发的标准 yml 文件。除了从8080端口改成80端口外,没有修改。
version: '2.1'
services:
#Mura Server
mura_mysql_cfml:
image: ortussolutions/commandbox:latest
environment:
PORT: 80
SSL_PORT: 8443
CFENGINE: adobe@2016
CFCONFIG_ADMINPASSWORD: NOT_SECURE_CHANGE
MURA_ADMIN_USERNAME: admin
MURA_ADMIN_PASSWORD: admin
MURA_ADMINEMAIL: example@localhost.com
MURA_APPRELOADKEY: appreload
MURA_DATASOURCE: muradb
MURA_DATABASE: muradb
MURA_DBTYPE: mysql
MURA_DBUSERNAME: root
MURA_DBPASSWORD: NOT_SECURE_CHANGE
MURA_DBHOST: mura_mysql
MURA_DBPORT: 3306
MURA_SITEIDINURLS: "false"
MURA_INDEXFILEINURLS: "false"
MURA_TESTBOX: "true"
volumes:
- ../../../:/app
ports:
- "80:80"
#MySQL
mura_mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: NOT_SECURE_CHANGE
MYSQL_DATABASE: muradb
volumes:
- mura_mysql_data:/var/lib/mysql
ports:
- "55555:3306"
volumes:
mura_mysql_data:
有什么可能出错的想法吗?
出于某种原因,您的 docker 堆栈中的 Web 服务器无法访问 mysql 服务器。
您如何执行 docker-compose?
如果您在 Mura 中尝试其他 docker-compose 文件,您会得到不同的结果吗?
另外,你试过安装Kitematic吗?它提供了大量关于 docker 容器和图像的视觉数据。
您的问题是您在 docker-compose.yml
文件中修改了 ports
。
左侧是 host
... 或您的 local
机器。右边是容器的网络端口,你不应该改变。所以,在mura_mysql_cfml
服务下试试:
ports:
- "80:8080"
此外,在 environment:
设置下,我会完全忽略 PORT: 80
环境变量。原因是因为该端口未在底层 Docker 映像中公开。
编辑:
此外,我刚刚注意到您没有使用默认图片。这很关键!您尝试使用的图像中甚至没有 Mura CMS。这意味着您必须提供它,或者将它作为一个卷安装到 /app
目录中。
巧合的是,我正在为像您这样的用户整理一些示例图像和 docker-compose.yml
文件。它仍在进行中,但我认为您无论如何都应该看看存储库:
https://github.com/blueriver/docker-muracms
希望对您有所帮助!
我是 运行 一个 Mura CMS 实例,使用 docker 撰写(使用 config/docker/local-mysql/docker-compose.yml)并收到以下错误:
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
这是我的 Docker-compose.yml 的副本,这是 Blue River 随 Mura 分发的标准 yml 文件。除了从8080端口改成80端口外,没有修改。
version: '2.1'
services:
#Mura Server
mura_mysql_cfml:
image: ortussolutions/commandbox:latest
environment:
PORT: 80
SSL_PORT: 8443
CFENGINE: adobe@2016
CFCONFIG_ADMINPASSWORD: NOT_SECURE_CHANGE
MURA_ADMIN_USERNAME: admin
MURA_ADMIN_PASSWORD: admin
MURA_ADMINEMAIL: example@localhost.com
MURA_APPRELOADKEY: appreload
MURA_DATASOURCE: muradb
MURA_DATABASE: muradb
MURA_DBTYPE: mysql
MURA_DBUSERNAME: root
MURA_DBPASSWORD: NOT_SECURE_CHANGE
MURA_DBHOST: mura_mysql
MURA_DBPORT: 3306
MURA_SITEIDINURLS: "false"
MURA_INDEXFILEINURLS: "false"
MURA_TESTBOX: "true"
volumes:
- ../../../:/app
ports:
- "80:80"
#MySQL
mura_mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: NOT_SECURE_CHANGE
MYSQL_DATABASE: muradb
volumes:
- mura_mysql_data:/var/lib/mysql
ports:
- "55555:3306"
volumes:
mura_mysql_data:
有什么可能出错的想法吗?
出于某种原因,您的 docker 堆栈中的 Web 服务器无法访问 mysql 服务器。
您如何执行 docker-compose? 如果您在 Mura 中尝试其他 docker-compose 文件,您会得到不同的结果吗?
另外,你试过安装Kitematic吗?它提供了大量关于 docker 容器和图像的视觉数据。
您的问题是您在 docker-compose.yml
文件中修改了 ports
。
左侧是 host
... 或您的 local
机器。右边是容器的网络端口,你不应该改变。所以,在mura_mysql_cfml
服务下试试:
ports:
- "80:8080"
此外,在 environment:
设置下,我会完全忽略 PORT: 80
环境变量。原因是因为该端口未在底层 Docker 映像中公开。
编辑:
此外,我刚刚注意到您没有使用默认图片。这很关键!您尝试使用的图像中甚至没有 Mura CMS。这意味着您必须提供它,或者将它作为一个卷安装到 /app
目录中。
巧合的是,我正在为像您这样的用户整理一些示例图像和 docker-compose.yml
文件。它仍在进行中,但我认为您无论如何都应该看看存储库:
https://github.com/blueriver/docker-muracms
希望对您有所帮助!