0

我正在尝试通过以下方式运行解析仪表板docker-compose.yml

version: '3'
services:

  mongo:
    image: mongo
    ports:
      - 27017:27017
    volumes:
      - ./data-db:/data/db

  parse:
    image: parseplatform/parse-server
    ports:
      - 1337:1337
    links:
      - mongo
    environment:
      - PARSE_SERVER_APPLICATION_ID=yourappid
      - PARSE_SERVER_MASTER_KEY=yourmasterkey
      - PARSE_SERVER_DATABASE_URI=mongodb://mongo:27017/dev
      - PARSE_SERVER_START_LIVE_QUERY_SERVER=1
#      - PARSE_SERVER_LIVE_QUERY={"classNames":["people","monitor"]}

  dashboard:
    image: parseplatform/parse-dashboard
    ports:
      - 4040:4040
    environment:
      - PARSE_DASHBOARD_SERVER_URL=http://localhost:1337/parse
      - PARSE_DASHBOARD_APP_ID=yourappid
      - PARSE_DASHBOARD_MASTER_KEY=yourmasterkey
      - PARSE_DASHBOARD_APP_NAME=appname
      - PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=1
      - PARSE_DASHBOARD_USER_ID=admin
      - PARSE_DASHBOARD_USER_PASSWORD=admin

通过命令运行此文件后:

docker-compose -f ./docker-compose.yml up -d

我要去http://localhost:4040/login我把管理员作为密码username的地方。admin

之后,我将被重定向到http://localhost:4040/apps/appname/browser只是一个空页面。

在此处输入图像描述

有趣的是,如果我使用检查元素,我会因为某些未知原因而出现一些错误:

在此处输入图像描述

你们有谁知道我做错了什么?有趣的是,有时如果我刷新页面一段时间,它会起作用。但只是有时。

来自终端的一些日志:

Recreating docker_dashboard_1 ... done
Starting docker_mongo_1       ... done
Recreating docker_parse_1     ... done
Attaching to docker_mongo_1, docker_dashboard_1, docker_parse_1
dashboard_1  | The dashboard is now available at http://0.0.0.0:4040/
mongo_1      | chown: changing ownership of '/data/db': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/mongod.lock': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/journal': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/journal/WiredTigerLog.0000000001': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/journal/WiredTigerPreplog.0000000001': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/journal/WiredTigerPreplog.0000000002': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/WiredTiger.lock': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/WiredTiger': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/WiredTiger.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/WiredTiger.turtle': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/WiredTigerHS.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/sizeStorer.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/_mdb_catalog.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/storage.bson': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/collection-0--4357951009205190989.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/index-1--4357951009205190989.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/collection-2--4357951009205190989.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/index-3--4357951009205190989.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/collection-4--4357951009205190989.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/index-5--4357951009205190989.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/index-6--4357951009205190989.wt': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/diagnostic.data': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/diagnostic.data/metrics.2022-02-22T16-34-04Z-00000': Operation not permitted
mongo_1      | chown: changing ownership of '/data/db/diagnostic.data/metrics.interim': Operation not permitted
docker_mongo_1 exited with code 1
parse_1      | warn: DeprecationWarning: The Parse Server option 'directAccess' default will change to 'true' in a future version. Additionally, the environment variable 'PARSE_SERVER_ENABLE_EXPERIMENTAL_DIRECT_ACCESS' will be deprecated and renamed to 'PARSE_SERVER_DIRECT_ACCESS' in a future version; it is currently possible to use either one.
parse_1      | warn: DeprecationWarning: The Parse Server option 'enforcePrivateUsers' default will change to 'true' in a future version.
parse_1      | allowClientClassCreation: true
parse_1      | allowCustomObjectId: false
parse_1      | appId: yourappid
parse_1      | cacheMaxSize: 10000
parse_1      | cacheTTL: 5000
parse_1      | collectionPrefix: 
parse_1      | customPages: {}
parse_1      | databaseURI: mongodb://mongo:27017/dev
parse_1      | directAccess: false
parse_1      | emailVerifyTokenReuseIfValid: false
parse_1      | enableAnonymousUsers: true
parse_1      | enableExpressErrorHandler: false
parse_1      | enforcePrivateUsers: false
parse_1      | expireInactiveSessions: true
parse_1      | fileUpload: {"enableForAnonymousUser":false,"enableForPublic":false,"enableForAuthenticatedUser":true}
parse_1      | graphQLPath: /graphql
parse_1      | host: 0.0.0.0
parse_1      | idempotencyOptions: {"ttl":300,"paths":[]}
parse_1      | logsFolder: ./logs
parse_1      | masterKey: ***REDACTED***
parse_1      | masterKeyIps: []
parse_1      | maxUploadSize: 20mb
parse_1      | mountGraphQL: false
parse_1      | mountPath: /parse
parse_1      | mountPlayground: false
parse_1      | objectIdSize: 10
parse_1      | pages: {"enableRouter":false,"enableLocalization":false,"localizationFallbackLocale":"en","placeholders":{},"forceRedirect":false,"pagesPath":"./public","pagesEndpoint":"apps","customUrls":{},"customRoutes":[]}
parse_1      | playgroundPath: /playground
parse_1      | port: 1337
parse_1      | preserveFileName: false
parse_1      | preventLoginWithUnverifiedEmail: false
parse_1      | protectedFields: {"_User":{"*":["email"]}}
parse_1      | revokeSessionOnPasswordReset: true
parse_1      | scheduledPush: false
parse_1      | security: {"enableCheck":false,"enableCheckLog":false}
parse_1      | sessionLength: 31536000
parse_1      | startLiveQueryServer: true
parse_1      | verifyUserEmails: false
parse_1      | jsonLogs: false
parse_1      | verbose: false
parse_1      | level: undefined
parse_1      | serverURL: http://localhost:1337/parse
parse_1      | 
parse_1      | [1] parse-server running on http://localhost:1337/parse
parse_1      | info: Parse LiveQuery Server started running
parse_1      | error: Uncaught internal server error. getaddrinfo EAI_AGAIN mongo {"name":"MongoServerSelectionError","reason":{"type":"Single","setName":null,"maxSetVersion":null,"maxElectionId":null,"servers":{},"stale":false,"compatible":true,"compatibilityError":null,"logicalSessionTimeoutMinutes":null,"heartbeatFrequencyMS":10000,"localThresholdMS":15,"commonWireVersion":null},"stack":"MongoServerSelectionError: getaddrinfo EAI_AGAIN mongo\n    at Timeout._onTimeout (/parse-server/node_modules/mongodb/lib/core/sdam/topology.js:437:30)\n    at listOnTimeout (internal/timers.js:557:17)\n    at processTimers (internal/timers.js:500:7)"}
parse_1      | MongoServerSelectionError: getaddrinfo EAI_AGAIN mongo
parse_1      |     at Timeout._onTimeout (/parse-server/node_modules/mongodb/lib/core/sdam/topology.js:437:30)
parse_1      |     at listOnTimeout (internal/timers.js:557:17)
parse_1      |     at processTimers (internal/timers.js:500:7) {
parse_1      |   reason: TopologyDescription {
parse_1      |     type: 'Single',
parse_1      |     setName: null,
parse_1      |     maxSetVersion: null,
parse_1      |     maxElectionId: null,
parse_1      |     servers: Map(1) { 'mongo:27017' => [ServerDescription] },
parse_1      |     stale: false,
parse_1      |     compatible: true,
parse_1      |     compatibilityError: null,
parse_1      |     logicalSessionTimeoutMinutes: null,
parse_1      |     heartbeatFrequencyMS: 10000,
parse_1      |     localThresholdMS: 15,
parse_1      |     commonWireVersion: null
parse_1      |   }
parse_1      | }
docker_parse_1 exited with code 1
4

1 回答 1

0

在 docker 中使用仪表板时,您在开发模式下运行,--dev并且PARSE_DASHBOARD_TRUST_PROXY: 1. 建议在部署时在反向代理后面运行它。您可以查看我的repo以获取示例:

    dashboard:
        image: parseplatform/parse-dashboard:4.0.0
        environment:
            PARSE_DASHBOARD_TRUST_PROXY: 1
            PARSE_DASHBOARD_COOKIE_SESSION_SECRET: AB8849B6-D725-4A75-AA73-AB7103F0363F # This should be constant across all deployments on your system
            MOUNT_PATH: /dashboard # This needs to be exactly what you plan it to be behind the proxy, i.e. If you want to access cs.uky.edu/dashboard it should be "/dashboard"
        command: parse-dashboard --dev
        volumes:
            - ./dashboard/parse-dashboard-config.json:/src/Parse-Dashboard/parse-dashboard-config.json
        ports:
            - 127.0.0.1:4040:4040
        depends_on:
            - parse
于 2022-02-23T22:34:29.343 回答