superfly / fly

Deploy app servers close to your users. Package your app as a Docker image, and launch it in 17 cities with one simple CLI.
https://fly.io
985 stars 48 forks source link

`fly new` tries to copy a directory with #206

Closed vincetse closed 4 years ago

vincetse commented 5 years ago

I've just installed Fly on Ubuntu, but it appears that the wrong function call is used to copy a directory.

vagrant@node-sandbox:~$ fly --version
0.44.8
vagrant@node-sandbox:~$ node --version
v8.15.0
vagrant@node-sandbox:~$ uname -a
Linux node-sandbox 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
vagrant@node-sandbox:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:   bionic
vagrant@node-sandbox:~$ fly new learning-flyio
Using template getting-started
Creating project in /home/vagrant/learning-flyio...
Failed to copy to app directory:
{ Error: EISDIR: illegal operation on a directory, copyfile '/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/examples/apps/getting-started/.fly' -> '/home/vagrant/learning-flyio/.fly'
    at Object.fs.copyFileSync (fs.js:1918:11)
    at glob_1.sync.forEach.templateFile (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/core/lib/cmd/new.js:111:16)
    at Array.forEach (<anonymous>)
    at Generator.copy (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/core/lib/cmd/new.js:109:78)
    at Command.root_1.root.subCommand.description.option.option.action [as _action] (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/core/lib/cmd/new.js:42:19)
    at Command.exec (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/commandpost/lib/command.js:203:37)
    at Promise.resolve.then (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/commandpost/lib/command.js:250:25)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)
    at Function.Module.runMain (module.js:696:11)
    at startup (bootstrap_node.js:204:16)
    at bootstrap_node.js:625:3
  errno: -21,
  code: 'EISDIR',
  syscall: 'copyfile',
  path: '/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/examples/apps/getting-started/.fly',
  dest: '/home/vagrant/learning-flyio/.fly' }

It also fails when given -t.

vagrant@node-sandbox:~$ fly new -t load-balancer -- learning-flyio
Using template load-balancer
Creating project in /home/vagrant/learning-flyio...
Failed to copy to app directory:
{ Error: EISDIR: illegal operation on a directory, copyfile '/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/examples/apps/load-balancer/lib' -> '/home/vagrant/learning-flyio/lib'
    at Object.fs.copyFileSync (fs.js:1918:11)
    at glob_1.sync.forEach.templateFile (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/core/lib/cmd/new.js:111:16)
    at Array.forEach (<anonymous>)
    at Generator.copy (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/core/lib/cmd/new.js:109:78)
    at Command.root_1.root.subCommand.description.option.option.action [as _action] (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/core/lib/cmd/new.js:42:19)
    at Command.exec (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/commandpost/lib/command.js:203:37)
    at Promise.resolve.then (/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/commandpost/lib/command.js:250:25)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)
    at Function.Module.runMain (module.js:696:11)
    at startup (bootstrap_node.js:204:16)
    at bootstrap_node.js:625:3
  errno: -21,
  code: 'EISDIR',
  syscall: 'copyfile',
  path: '/home/vagrant/.npm-global/lib/node_modules/@fly/fly/node_modules/@fly/examples/apps/load-balancer/lib',
  dest: '/home/vagrant/learning-flyio/lib' }
mrkurt commented 5 years ago

Oh yeah definite bug. Those examples are a little limited / old, the best "getting started" example right now is this https://github.com/superfly/cdn#clone-and-run-tests