0

我有一个带有公共 ip 的Ubuntu 18.04 服务器虚拟机,还有一个私有网络中的虚拟机(我也位于私有网络中,可以 ssh 进入服务器;不涉及 VPN)。

我已经使用相同的流程将数十个Meteor 1.8.1应用程序推送到我们的公共虚拟机上,没有任何问题:

  • mup init
  • 配置mup.jssettings.json
  • mup setup
  • mup deploy

现在,当我使用私有 VM (ip 10.x.y.z) 时,我收到以下错误mup setup

$ meteor mup setup 

Started TaskList: Setup Docker
[10.x.y.z] - Setup Docker
[10.x.y.z] x Setup Docker: FAILED

              ------------------------------------STDERR------------------------------------
              sudo: docker: command not found
        sudo: docker: command not found
        debconf: unable to initialize frontend: Dialog
        debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
        debconf: falling back to frontend: Readline
        debconf: unable to initialize frontend: Readline
        debconf: (This frontend requires a controlling tty.)
        debconf: falling back to frontend: Teletype
        dpkg-preconfigure: unable to re-open stdin: 
        usermod: group 'docker' does not exist

这条线Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal让我好奇,因为这不应该是由于在专用网络中引起的,对吗?

mup.js 是

module.exports = {
  servers: {
    one: {
      host: '10.x.y.z',
      username: 'root'
    }
  },

  app: {
    name: 'appname',
    path: '../',

    servers: {
      one: {},
    },

    buildOptions: {
      serverOnly: true,
    },

    env: {
      ROOT_URL: 'https://ref.to.domain.tld',
      MONGO_URL: 'mongodb://localhost/meteor',
      MONGO_OPLOG_URL: 'mongodb://mongodb/local',
      HTTP_FORWARDED_COUNT: 1,
      port: 12345
    },

    docker: {
      image: 'abernix/meteord:node-8.15.1-base',
    },

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

  mongo: {
    version: '3.4.1',
    servers: {
      one: {}
    }
  },

  // (Optional)
  // Use the proxy to setup ssl or to route requests to the correct
  // app when there are several apps

  proxy: {
    domains: 'ref.to.domain.tld',
    ssl: {
      forceSSL: true,
      letsEncryptEmail: 'user@example.tld'
    },
    clientUploadLimit: '50M'
  }
};

为什么是这样?我无法解释为什么它的行为应该如此不同,而虚拟机除了网络配置之外没有什么不同?

4

0 回答 0