I'm trying to deploy the TelescopeApp to DigitalOcean, using mup. All seems to be going well until the 'Verifying Deployment: FAILED'. I am using the abernix/meteord:base dockerimage.
The error reads "Failed at the v8-profiler#5.6.5 install script 'node-pre-gyp install --fallback-to-build'. Make sure you have the latest version of node.js and npm installed. If you do, this is most likely a problem with the v8-profiler package, not with npm itself."
The entire error is here http://pastebin.com/4pDHy5KM
I tried to install Telescope on another DigitalOcean droplet, and deploy it from there, but got the same error when deploying to the Telescope droplet. Any ideas on how to fix this?
mup.js:
module.exports = {
servers: {
one: {
host: 'x.x.x.x',
username: 'root'
}
},
meteor: {
name: 'Telescope',
path: '.',
servers: {
one: {}
},
buildOptions: {
serverOnly: true,
},
env: {
ROOT_URL: 'http://x.x.x.x',
},
dockerImage: 'abernix/meteord:base',
deployCheckWaitTime: 60
},
mongo: {
oplog: true,
port: 27017,
servers: {
one: {},
},
},
};
On the slack channel of the TelescopeApp I was told to disable nova:kadira
and to run mup with the --settings flag to be sure. This solved the deployment problem.
Related
I am trying to launch my nextjs app through PM2. I have configured PM2 in ecosystem.config.js file and starting my nextjs app as pm2 start my-app. That's work perfectly fine.
Now I also want PM2 to pull from my github repo then run a custom script that I provided undeer post-deploy key. After setting up my github repo through ssh, I tried to run PM2 as pm2 deploy but that gives me following error
error: missing required argument 'file|environment'
ecosystem.config.js
module.exports = {
apps: [
{
name: 'next-app',
script: 'npm run start',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}
],
deploy: {
production: {
user: 'ubuntu',
host: ["123.12.12.123"],
key: '~/.ssh/id_ed25519.pub',
ssh_options: 'ForwardAgent=yes',
ref: 'origin/branch-12',
repo: 'git#github.com:my-username/my-repo.git',
path: '/var/www/my-project/',
'pre-deploy': "git fetch --all && git reset --hard origin/branch-12",
'post-deploy': 'sh nextjs-pm2-deploy.sh'
}
}
};
I have a Ubuntu 18.04 Server VM with a public ip and also another VM in the private network (I am also located in the private network and can ssh into the server; no VPN involved).
I have pushed dozens of Meteor 1.8.1 apps to our public VMs without any issues using the same process:
mup init
config mup.js and settings.json
mup setup
mup deploy
Now when I use the private-located VM (ip 10.x.y.z) then I get the following error on 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
Where the line Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal makes me curious, since this should not be caused due to being in a private network, am I right?
mup.js is
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'
}
};
Why is this? I can't get a reason for why it should behave so different while the VM does not differ besides the network config?
I am deploying meteor app using Meteor Up.
The development app is at the location /apps/proto/meteor/GatewayUI
and i have the .deploy folder which is inside the GatewayUI folder.
On giving the command "mup deploy", I get the following error
{ Error: spawn meteor ENOENT
at exports._errnoException (util.js:1018:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawn meteor',
path: 'meteor', spawnargs:
[ 'build',
'--directory',
'/tmp/mup-meteor-981e8b09-055e-4ffe-a50a-d73d07c1ac5f',
'--architecture',
'os.linux.x86_64',
'--debug',
'--mobile-settings',
'/apps/proto/meteor/GatewayUI/settings.json' ] }
This error usually happens when meteor is not installed.
My mup.js is as follows:
module.exports = {
servers: {
one: {
// TODO: set host address, username, and authentication method
host: 'myhost',
username: 'myusername',
// pem: './path/to/pem'
password: 'mypassword'
// or neither for authenticate from ssh-agent
}
},
meteor: {
// TODO: change app name and path
name: 'GatewayUI',
path: '../../GatewayUI/',
servers: {
one: {},
},
buildOptions: {
debug: true,
executable: 'meteor',
},
env: {
// TODO: Change to your app's url
// If you are using ssl, it needs to start with https://
ROOT_URL: 'http://gatewayui.com',
MONGO_URL: 'mongodb://localhost/meteor',
},
// ssl: { // (optional)
// // Enables let's encrypt (optional)
// autogenerate: {
// email: 'email.address#domain.com',
// // comma seperated list of domains
// domains: 'website.com,www.website.com'
// }
// },
docker: {
// change to 'kadirahq/meteord' if your app is not using Meteor 1.4
image: 'abernix/meteord:base',
// 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: 60,
// Show progress bar while uploading bundle to server
// You might need to disable it on CI servers
enableUploadProgressBar: true
},
mongo: {
port: 27199,
version: '3.4.1',
servers: {
one: {}
}
}
};
A couple of things for this to not happen
1) make sure Meteor is installed. In my case, it was installed, however, the path was not set. It happened, because I forgot to add the path permanently
2) Docker, Mongo, Meteor should be installed in effect.
3) Every time, mup setup must precede mup deploy.
I have a Meteor application that I'm trying to deploy on a VPS. I am using Meteor Up to do this.
By following the instructions I have set up my mup.js file to look like this:
module.exports = {
servers: {
one: {
host: '41.185.27.69',
username: 'root',
// pem:
password: 'secret',
// or leave blank for authenticate from ssh-agent
opts: {
port: 22
}
}
},
meteor: {
name: 'HelderbergLink',
path: '../../HelderbergLink',
servers: {
one: {}
},
buildOptions: {
serverOnly: true,
},
env: {
ROOT_URL: 'http://41.185.27.69',
MONGO_URL: 'mongodb://127.0.0.1:27017/HelderbergLink'
},
dockerImage: 'abernix/meteord:base',
deployCheckWaitTime: 60
},
mongo: {
oplog: true,
port: 27017,
servers: {
one: {},
},
},
};
After this is set up I run the following command in my .deploy directory:
mup.cmd setup
Everything setups successfully here, but then when I need to run the next command:
mup.cmd deploy
It runs through most of the process but then gives me this error:
I'm not sure what to do to resolve this. Any help would be much appreciated!
I am trying to deploy a Meteor app onto a DigitalOcean droplet, via its IP address (I have no domain name). I am doing this kind of thing for the first time, and am having a lot of issues with it.
This is my droplet on Digital Ocean:
I created a MUP (Meteor Up) directory outside my Meteor app’s repo using mup init, and this is the mup.js file that I have:
module.exports = {
servers: {
one: {
host: 'http://162.243.57.207',
username: 'cs673f16',
pem: '/Users/gautambhat/.ssh/id_rsa'
// password:
// or leave blank for authenticate from ssh-agent
}
},
meteor: {
name: 'meetcute',
path: '/Users/gautambhat/Repos/CS673_team2',
servers: {
one: {}
},
buildOptions: {
serverOnly: true,
},
env: {
ROOT_URL: 'http://162.243.57.207',
PORT : 3000
//MONGO_URL: 'mongodb://localhost/meteor'
},
//dockerImage: 'kadirahq/meteord'
deployCheckWaitTime: 60
},
mongo: {
oplog: true,
port: 27017,
servers: {
one: {},
},
},
};
Also, I don't know my MONGO_URL, or where to find it, so I just commented it out. On running mup setup, I get the following error:
Started TaskList: Setup Docker
[http://162.243.57.207] - setup docker
Error getaddrinfo ENOTFOUND http://162.243.57.207 http://162.243.57.207:22
Can anyone point me in the right direction?
The error—as described in your original post—is as follows:
Started TaskList: Setup Docker
[http://162.243.57.207] - setup docker
Error getaddrinfo ENOTFOUND http://162.243.57.207 http://162.243.57.207:22
The error basically means it can’t find the host http://162.243.57.207. So let’s look at the `servers part of your configuration:
servers: {
one: {
host: 'http://162.243.57.207',
username: 'cs673f16',
pem: '/Users/gautambhat/.ssh/id_rsa'
// password:
// or leave blank for authenticate from ssh-agent
}
},
Your host setting is a URL when it should be a hostname or IP address; meaning host: 'http://162.243.57.207' should just be 162.243.57.207. So change that and try again:
servers: {
one: {
host: '162.243.57.207',
username: 'cs673f16',
pem: '/Users/gautambhat/.ssh/id_rsa'
// password:
// or leave blank for authenticate from ssh-agent
}
},