我有一个带有公共 ip 的Ubuntu 18.04 服务器虚拟机,还有一个私有网络中的虚拟机(我也位于私有网络中,可以 ssh 进入服务器;不涉及 VPN)。
我已经使用相同的流程将数十个Meteor 1.8.1应用程序推送到我们的公共虚拟机上,没有任何问题:
mup init
- 配置
mup.js
和settings.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'
}
};
为什么是这样?我无法解释为什么它的行为应该如此不同,而虚拟机除了网络配置之外没有什么不同?