4 ms·
I have coworkers on Mac that write node/JS code. Every once in awhile I'd pull down the latest code and it wouldn't run. I'm on Linux. Sure enough, they had So
by deckard1 5y ago
I have coworkers on Mac that write node/JS code. Every once in awhile I'd pull down the latest code and it wouldn't run. I'm on Linux.
Sure enough, they had SomeFile and were importing Somefile and it works fine on Mac but not on Linux (which, of course, is what our production servers use). It amazes me that "works fine on my machine" is still a thing when I definitely worked at companies that solved this back in the 2000s. It was solved. It was done. Then devs became enamored with running everything locally. Even dozens of microservices or databases. Even though JS is fairly isolated, you still have NPM packages that need built against the local OS and C/C++ library and compilers, etc. Which also has caused issues in the past.
- speedgoose 5y agoGood news, we have solutions. You could use continuous integration and software containers like Docker.
- fouric 5y agoDoes Docker abstract filesystem behaviors like this? I always thought that it stopped at the libc level - that is, libc is included in the container, but it calls the host kernel's system calls, and so inherits the host kernel's behavior (including things like underlying filesystem case sensitivity).
- handrous 5y agoDocker relies on LXC, so it's Linux-only. On other platforms it runs in a Linux VM. The host for Docker, then, is Linux no matter where you are.
- zokier 5y ago> Docker relies on LXC, so it's Linux-only. Docker hasn't supported LXC since 2016, and stopped relying on it in 2014 https://www.docker.com/blog/docker-0-9-introducing-execution-drivers-and-libcontainer/ https://www.docker.com/blog/docker-0-9-introducing-execution...
- handrous 5y agoI thought the name for the collection of kernel features was LXC, I didn't realize (until just now) that was the name only for the also-kernel-level wrapper for those features, which name does not cover the features themselves. That is, I didn't realize that LXC is to Cgroups+Namespaces as Libvirt is to KVM—I thought LXC, as a label, covered the whole feature-set—but regardless, it's still married to Linux kernel features and runs on other platforms under virtualization, no?
- zokier 5y ago> it's still married to Linux kernel features and runs on other platforms under virtualization, no? Actually no. At least on Windows Docker can do native Windows containers too https://poweruser.blog/lightweight-windows-containers-using-docker-process-isolation-in-windows-10-62519be76c8c https://poweruser.blog/lightweight-windows-containers-using-...
- deleted 5y ago[deleted]
- jatone 5y agomy favorite is often being the only developer on linux and giving two files with different casing and watching their systems crash and burn.