带有 docker-compose 的解析仪表板:无法连接到服务器
parse-dashboard w/ docker-compose: unable to connect to server
我使用 docker-compose 配置了一个小集群,由解析服务器、mongo 和解析仪表板组成:
version: "3"
services:
myappdb:
image: mongo
ports:
- 27017:27017
myapp-parse-server:
image: parseplatform/parse-server
environment:
- PARSE_SERVER_MASTER_KEY=xxxx
- PARSE_SERVER_APPLICATION_ID=myapp
- VERBOSE=0
- PARSE_SERVER_DATABASE_URI=mongodb://myappdb:27017/dev
- PARSE_SERVER_URL=http://myapp-parse-server:1337/parse
depends_on:
- myappdb
ports:
- 5000:1337
parse-dashboard:
image: parseplatform/parse-dashboard
ports:
- 5001:4040
environment:
- PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=1
- PARSE_DASHBOARD_SERVER_URL=http://myapp-parse-server:1337/parse
- PARSE_DASHBOARD_APP_ID=myapp
- PARSE_DASHBOARD_MASTER_KEY=xxxx
- PARSE_DASHBOARD_USER_ID=admin
- PARSE_DASHBOARD_USER_PASSWORD=xxxx
尽我所能,但是,我无法让部署的解析仪表板连接到 myapp-parse-server。在我使用浏览器(在 localhost:5001)登录仪表板后,仪表板应用程序通知我它是 'unable to connect to server'.
我已经尝试从解析仪表板容器中 ping 主机 'myapp-parse-server',它可以很好地看到容器。同样,它可以看到端点http://myapp-parse-server:1337/parse; wget returns 预期的 403.
如果我在我的主机上使用 parse-dashboard 运行 的副本,它在 http://localhost:5000/parse 上工作得很好。所以从我的主机到解析服务器的转发端口有效。
我还尝试使用安装到容器中的 parse-dashboard-config.json 配置仪表板。产生完全相同的结果。
我不知道我在这里做错了什么。任何人都可以阐明这一点吗?
您的 docker-compose 文件似乎有一些问题:
PARSE_SERVER_URL 指向 myapp-parse-server 它应该指向 http://localhost:1337/parse (除非你修改了你的主机文件以某种方式放在容器上,但我没有看到它)
你的 myapp-parse-server 应该 link 到你的数据库使用 links
这是我在 how to deploy parse-server to google container enginee
上写的一篇博客中的 docker-compose 文件示例
version: "2"
services:
# Node.js parse-server application image
app:
build: ./app
command: npm start -- /parse-server/config/config.json
container_name: my-parse-app
volumes:
- ./app:/parse-server/
- /parse-server/node_modules
ports:
- "1337:1337"
links:
- mongo
# MongoDB image
mongo:
image: mongo
container_name: mongo-database
ports:
- "27017:27017"
volumes_from:
- mongodata
# MongoDB image volume for persistence
mongodata:
image: mongo
volumes:
- ./data/db:/data/db
command:
- --break-mongo
从上面的例子可以看出我使用了links并且还为数据库磁盘创建并附加了卷。
此外,我个人认为最好 运行 parse-server with config file 为了解耦所有配置所以我的配置文件如下所示(在我的 docker compose 你可以看到我运行正在使用配置文件而不是环境变量解析服务器)
{
"databaseURI": "mongodb://localhost:27017/my-db",
"appId": "myAppId",
"masterKey": "myMasterKey",
"serverURL": "http://localhost:1337/parse",
"cloud": "./cloud/main.js",
"mountPath": "/parse",
"port": 1337
}
最后,在我的解析仪表板图像中,我也使用配置文件并将其简单地创建为卷,并用我自己的配置文件替换默认配置文件。因为我的博客中没有涉及这一步,所以您最终的 docker-compose 文件应如下所示:
version: "2"
services:
# Node.js parse-server application image
app:
build: ./app
command: npm start -- /parse-server/config/config.json
container_name: my-parse-app
volumes:
- ./app:/parse-server/
- /parse-server/node_modules
ports:
- "1337:1337"
links:
- mongo
# MongoDB image
mongo:
image: mongo
container_name: mongo-database
ports:
- "27017:27017"
volumes_from:
- mongodata
# MongoDB image volume for persistence
mongodata:
image: mongo
volumes:
- ./data/db:/data/db
command:
- --break-mongo
dashboard:
image: parseplatform/parse-dashboard:1.1.0
volumes:
- ./dashboard/dashboard-config.json:/src/Parse-Dashboard/parse-dashboard-config.json
environment:
PORT: 4040
PARSE_DASHBOARD_ALLOW_INSECURE_HTTP: 1
ALLOW_INSECURE_HTTP: 1
MOUNT_PATH: "/parse"
并且解析-dashboard.json(配置文件)应该是:
{
"apps": [
{
"serverURL": "http://localhost:3000/parse",
"appId": "myMasterKey",
"masterKey": "myMasterKey",
"appName": "My App"
}
],
"users": [
{
"user": "myuser",
"pass": "mypassword"
}
],
"useEncryptedPasswords": 错误
}
我知道它有点长,所以我真的鼓励你阅读这个系列的博客。
希望对您有所帮助。
我使用 docker-compose 配置了一个小集群,由解析服务器、mongo 和解析仪表板组成:
version: "3"
services:
myappdb:
image: mongo
ports:
- 27017:27017
myapp-parse-server:
image: parseplatform/parse-server
environment:
- PARSE_SERVER_MASTER_KEY=xxxx
- PARSE_SERVER_APPLICATION_ID=myapp
- VERBOSE=0
- PARSE_SERVER_DATABASE_URI=mongodb://myappdb:27017/dev
- PARSE_SERVER_URL=http://myapp-parse-server:1337/parse
depends_on:
- myappdb
ports:
- 5000:1337
parse-dashboard:
image: parseplatform/parse-dashboard
ports:
- 5001:4040
environment:
- PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=1
- PARSE_DASHBOARD_SERVER_URL=http://myapp-parse-server:1337/parse
- PARSE_DASHBOARD_APP_ID=myapp
- PARSE_DASHBOARD_MASTER_KEY=xxxx
- PARSE_DASHBOARD_USER_ID=admin
- PARSE_DASHBOARD_USER_PASSWORD=xxxx
尽我所能,但是,我无法让部署的解析仪表板连接到 myapp-parse-server。在我使用浏览器(在 localhost:5001)登录仪表板后,仪表板应用程序通知我它是 'unable to connect to server'.
我已经尝试从解析仪表板容器中 ping 主机 'myapp-parse-server',它可以很好地看到容器。同样,它可以看到端点http://myapp-parse-server:1337/parse; wget returns 预期的 403.
如果我在我的主机上使用 parse-dashboard 运行 的副本,它在 http://localhost:5000/parse 上工作得很好。所以从我的主机到解析服务器的转发端口有效。
我还尝试使用安装到容器中的 parse-dashboard-config.json 配置仪表板。产生完全相同的结果。
我不知道我在这里做错了什么。任何人都可以阐明这一点吗?
您的 docker-compose 文件似乎有一些问题:
PARSE_SERVER_URL 指向 myapp-parse-server 它应该指向 http://localhost:1337/parse (除非你修改了你的主机文件以某种方式放在容器上,但我没有看到它)
你的 myapp-parse-server 应该 link 到你的数据库使用 links
这是我在 how to deploy parse-server to google container enginee
上写的一篇博客中的 docker-compose 文件示例version: "2"
services:
# Node.js parse-server application image
app:
build: ./app
command: npm start -- /parse-server/config/config.json
container_name: my-parse-app
volumes:
- ./app:/parse-server/
- /parse-server/node_modules
ports:
- "1337:1337"
links:
- mongo
# MongoDB image
mongo:
image: mongo
container_name: mongo-database
ports:
- "27017:27017"
volumes_from:
- mongodata
# MongoDB image volume for persistence
mongodata:
image: mongo
volumes:
- ./data/db:/data/db
command:
- --break-mongo
从上面的例子可以看出我使用了links并且还为数据库磁盘创建并附加了卷。
此外,我个人认为最好 运行 parse-server with config file 为了解耦所有配置所以我的配置文件如下所示(在我的 docker compose 你可以看到我运行正在使用配置文件而不是环境变量解析服务器)
{
"databaseURI": "mongodb://localhost:27017/my-db",
"appId": "myAppId",
"masterKey": "myMasterKey",
"serverURL": "http://localhost:1337/parse",
"cloud": "./cloud/main.js",
"mountPath": "/parse",
"port": 1337
}
最后,在我的解析仪表板图像中,我也使用配置文件并将其简单地创建为卷,并用我自己的配置文件替换默认配置文件。因为我的博客中没有涉及这一步,所以您最终的 docker-compose 文件应如下所示:
version: "2"
services:
# Node.js parse-server application image
app:
build: ./app
command: npm start -- /parse-server/config/config.json
container_name: my-parse-app
volumes:
- ./app:/parse-server/
- /parse-server/node_modules
ports:
- "1337:1337"
links:
- mongo
# MongoDB image
mongo:
image: mongo
container_name: mongo-database
ports:
- "27017:27017"
volumes_from:
- mongodata
# MongoDB image volume for persistence
mongodata:
image: mongo
volumes:
- ./data/db:/data/db
command:
- --break-mongo
dashboard:
image: parseplatform/parse-dashboard:1.1.0
volumes:
- ./dashboard/dashboard-config.json:/src/Parse-Dashboard/parse-dashboard-config.json
environment:
PORT: 4040
PARSE_DASHBOARD_ALLOW_INSECURE_HTTP: 1
ALLOW_INSECURE_HTTP: 1
MOUNT_PATH: "/parse"
并且解析-dashboard.json(配置文件)应该是:
{
"apps": [
{
"serverURL": "http://localhost:3000/parse",
"appId": "myMasterKey",
"masterKey": "myMasterKey",
"appName": "My App"
}
],
"users": [
{
"user": "myuser",
"pass": "mypassword"
}
],
"useEncryptedPasswords": 错误
}
我知道它有点长,所以我真的鼓励你阅读这个系列的博客。
希望对您有所帮助。