Meteor:在 mup 中设置 SSL 后出现 Docker 容器错误

Meteor:在 mup 中设置 SSL 后出现 Docker 容器错误

在我收到以下错误后:*3940 peer closed connection in SSL handshake while SSL handshaking to upstream。我认为这是因为我为 ssl(letsencrypt)设置了 nginx,但没有在 mup.js 文件夹中设置它。标准应用程序在 IP 上运行,但在 url 上出现 502 错误。现在,当我运行 mup setup(运行良好)然后运行 ​​mup deploy(导致错误)时,我收到此错误。客户端是应用程序名称

mup deploy 本地构建应用程序包

Started TaskList: Pushing Meteor App [159.203.161.164] - Pushing Meteor App Bundle to The Server [159.203.161.164] - Pushing Meteor App Bundle to The Server: SUCCESS

Started TaskList: Configuring App [159.203.161.164] - Pushing the Startup Script [159.203.161.164] - Pushing the Startup Script: SUCCESS [159.203.161.164] - Sending Environment Variables [159.203.161.164] - Sending Environment Variables: SUCCESS

Started TaskList: Start Meteor [159.203.161.164] - Start Meteor [159.203.161.164] x Start Meteor: FAILED

-----------------------------------STDERR-----------------------------------
Removing docker containers. Errors about nonexistent endpoints and containers are normal.
Error response from daemon: No such container: Client
Error response from daemon: endpoint Client not found
Error response from daemon: No such container: Client-frontend
Error response from daemon: endpoint Client-frontend not found
Error response from daemon: No such container: Client-nginx-letsencrypt
Error response from daemon: endpoint Client-nginx-letsencrypt not found
Error response from daemon: No such container: Client-nginx-proxy
Error response from daemon: endpoint Client-nginx-proxy not found
Finished removing docker containers
docker: Error response from daemon: driver failed programming external connectivity on endpoint Client-frontend (570bf93af6efc15382e6c98b27bf16b3a44cd60672916345d3371126b81045f9): Bind for 0.0.0.0:8080 failed: port is already allocated.
-----------------------------------STDOUT-----------------------------------
base: Pulling from abernix/meteord
Digest: sha256:9ed85313621010dd27a08054ae9225aa1f31798647fbcfdc9cc082181c6f9c97
Status: Image is up to date for abernix/meteord:base
Pulled abernix/meteord:base
49670f85c487fd1ad96847f8c59acb6c712b37277611695100579653897ae310
Ran abernix/meteord:base
Using default tag: latest
latest: Pulling from meteorhacks/mup-frontend-server
03e1855d4f31: Already exists
a3ed95caeb02: Already exists
a3ed95caeb02: Already exists
304ae4ee074b: Already exists
963207107048: Already exists
d9e2907e9fa4: Already exists
4abf3e40edd9: Already exists
3c907a5d5f8f: Already exists
8db38a632903: Already exists
Digest: sha256:573a1dd3e0e7829ad16e813d87e79948e9f2ef2cfa84d17c2c4c220b6e651b12
Status: Image is up to date for meteorhacks/mup-frontend-server:latest
5cb25faa874e5c4233abe46633a3975bc0745175906f1e22004b51b70dd3094b

这是mup.js:

meteor: {
    // TODO: change app name and path
    name: 'Client',
    path: '../',

    servers: {
      one: {},
    },

    buildOptions: {
      serverOnly: true,
    },

    env: {
      // TODO: Change to your app's url
      // If you are using ssl, it needs to start with https://
      PORT: 8080,
      ROOT_URL: 'https://url.com/Client',
      MONGO_URL: 'mongodb://localhost/meteor',
    },


   ssl: {
      crt: '/etc/letsencrypt/live/url.com/fullchain.pem',
        key: '/etc/letsencrypt/live/url.com/privkey.pem',
        port: 8080
    },
    docker: {
      // change to 'kadirahq/meteord' if your app is not using Meteor 1.4
      image: 'abernix/meteord:base',
        imageFrontendServer: 'meteorhacks/mup-frontend-server'
      // imagePort: 80, // (default: 80, some images EXPOSE different ports)
    },

    // This is the maximum time in seconds it will wait
    // for your app to start
    // Add 30 seconds if the server has 512mb of ram
    // And 30 more if you have binary npm dependencies.
    deployCheckWaitTime: 120,
      deployCheckPort: 8080,

    // Show progress bar while uploading bundle to server
    // You might need to disable it on CI servers
    enableUploadProgressBar: true
  },

  mongo: {
    port: 27017,
    version: '3.4.1',
    servers: {
      one: {}
    }
  }
};

任何帮助,将不胜感激

答案1

我遇到了同样的问题。似乎是由部署服务器上运行的现有 Meteor 应用程序引起的,mup 无法停止该应用程序(无论出于何种原因)。所以我不得不停止它并手动删除 docker 容器:

  1. 使用 列出 docker 容器sudo docker ps -a,并找到之前的 Meteor 应用程序
  2. sudo docker stop <containerId>
  3. sudo docker rm <containerId>

相关内容