Is "deploying to Docker containers" now a thing?
-
@boomzilla said in Is "deploying to Docker containers" now a thing?:
I do like it when I have a repeatable recipe for setting something up. Which supposedly docker gives you. If it's just "replacing one folder" then I guess stuff is easy so what's the big deal?
Sane deployment:
- Create package (zip file) of your application
- Deploy package contents into some folder
Docker deployment:
- Create package (zip file) of your application
- Create quasi-VM from an image
- Get latest versions of all dependencies your application might use
- Deploy package contents into some folder
- Save quasi-VM as container
The problem is step 3. Dockerfans say its good because "the latest version of dependencies are better because they are tested very well by everyone else and have a bunch of fixed bugs you didn't even know existed before". Those grounded in reality, or at least who care about not having constantly broken and/or untestable software, know better.
-
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
Sane deployment:
Create package (zip file) of your application
Deploy package contents into some folderYou forgot:
-4. Put in forms for someone else create a server. Pray they install the right OS version
-3. Twiddle your fingers waiting around for someone else to install the envrionment you need. Pray they configure apache correctly.
-2. Weep inwardly as they look over your dependency list with a blank stare, wondering what the fuck all this even is
-1. WAIT! Did a patch come out? Did someone in Security insist on upgrading to avoid a critical flaw? Start over with testing, you no longer know if your application will even run.
0. Hope nothing you did wrong in the past has secretly broken some portion of your server environment.I won't argue that you should always have the very latest in dependencies. I just like the idea that the configuration and dependencies are deployed WITH the application code, not managed separately, often by entirely different people.
-
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
- Create package (zip file) of your application
- Deploy package contents into some folder
How to run a web server of database (multiple servers and databases on one machine) in a sane way through this?
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
The problem is step 3: Get latest versions of all dependencies your application might use
That is entirely up to you, you can specify which version of the base container you use. Or you can put exactly the versions you want inside the container and ship it as an immutable package. Exactly what you wanted...
Your argument really feels backwards - if it is important for you to control the exact versions of all dependencies installed with your application, Docker allows you to do exactly that. In contrast, if you deploy without Docker, you get the versions that are by chance installed on the machine. How does that follow???
-
@lucas1 said in Is "deploying to Docker containers" now a thing?:
I thought the whole point of stuff like Docker is that you have a known OS configuration your code is supposed to work on and you can spin that up easily.
The whole "this only works with a specific configuration" is a bunch of bullshit that far too many people--including, probably in particular, library writers--fall prey to. I've seen this with shit like ERP software too: "BERP 6.02 only works on [specific kernel version] of [particular Linux distro] and [list of libraries].
By contrast, my company's application works on every version of Windows from XP to 10, including all the server versions (that's as far back as I have been working there but it used to support older versions) as well as all 3 current major versions of the Progress runtime, including every patch level (barring the occasional showstopper bug.) You install the runtime, you install the app, you're good to go.
If your app can't do that, it doesn't necessarily mean, contra everyone's favorite rat, that you and/or your company are incompetent, but it does mean you're probably not doing it right.
-
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
What's wrong with Win32?
Mostly edge cases[1], like no consistent naming standard for newer versions of specific APIs. Is the replacement for TextOut ExtTextOut, TextOut2, or TextOutEx?
[1] that's not to say there's not a big number of them, but the problems tend to fall into groups like that.
-
@asdf said in Is "deploying to Docker containers" now a thing?:
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
What's wrong with Win32? It's a very well documented API broken down into fairly logical categories that is intended for consumption by C programs; and it has 30+ years of backwards compatibility.
It's insanely complicated.
Let's see, it's an API to a non-shitty operating system that doesn't treat everything like a file, so it's going to be complicated. Windows has permissions, processes, service management, threads, and they're all integrated, because they should be.
Just look at the parameter list of most functions. And the fact that all the hacks are well-documented doesn't change the fact that they're hacks.
Got any examples of shitty functions? They use a very consistent convention across libraries, and are meant for use by C. If you're used to JavaScript, C++, C#, etc., they are foreign.
-
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
doesn't treat everything like a file
Linux doesn't do that either. A lot of stuff is mapped to the file system for convenience, but that's not the primary API.
Windows has permissions, processes, service management, threads, and they're all integrated, because they should be.
Which of those things (except service management, which is systemd's job, but who cares, it's part of the base OS image) is not offered by Linux as well?
Got any examples of shitty functions?
It's been a while, I'll look one up.
-
deploy to a running docker container is stupid
but the fact that anything that is available as a docker container can be installed with a single docker pull command, flawlessly, from any supported linux distro is great.
I prefer a xcopy installation when it's possible. but who would want to manually install something like discourse?
-
@accalia said in Is "deploying to Docker containers" now a thing?:
it's great for open source projects on the raw and bleeding edge where version 1.0.1 and version 1.0.2 can have different behaviors, or for when the developers chose to code in ruby and found their product is so complicated and the deployment steps are so arcane that th literally the only way someone other than them was going to get it was if they distributed it in docker.
So it's a great idea for shitty products made by incompetents.
-
@Adynathos Yes, but they only support it if you run their Docker image on Ubuntu on Digital Ocean. Want to use EC2 or Azure? Unsupported.
-
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
What's wrong with Win32? It's a very well documented API broken down into fairly logical categories that is intended for consumption by C programs; and it has 30+ years of backwards compatibility.
Even at the time it was new, it was kind of crappy compared to its Amiga and Macintosh competitors.
That said, I'd take it over that crappy Cocoa API now. Apple really screwed the pooch.
-
@Adynathos said in Is "deploying to Docker containers" now a thing?:
How to run a web server of database (multiple servers and databases on one machine) in a sane way through this?
On Windows? Each site is a different "site" in IIS, and each database is a different "database" in SQL Server.
Look at that confusing terminology they used, too. Shame.
-
@asdf said in Is "deploying to Docker containers" now a thing?:
Linux doesn't do that either.
Linux fans say it does. Until that makes it look stupid (like I ask a question like, "how do you map a TV tuner/FM radio PCI card to a file?), then they suddenly declare it doesn't.
-
@blakeyrat said in Is "deploying to Docker containers" now a thing?:
Linux fans say it does.
Only those that don't have a clue. Linux is not Plan 9.
-
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
The problem is step 3. Dockerfans say its good because "the latest version of dependencies are better because they are tested very well by everyone else and have a bunch of fixed bugs you didn't even know existed before". Those grounded in reality, or at least who care about not having constantly broken and/or untestable software, know better.
Oh. So docker always gets the latest? You can't specify a version? Yes, that's retarted if true.
-
@asdf said in Is "deploying to Docker containers" now a thing?:
Only those that don't have a clue.
Riiight. It would be crazy for Linux users to purposefully use terminology in confusing ways to get the upper hand when debating.
And when I say "Linux" there I mean the OS. Or maybe the Kernel? Ubuntu isn't a Linux, it just wraps around Linux. Or maybe it is Linux? Android's certainly a Linux until it's not anymore. "Linux" is this great slippery concept you can use to support any argument, it'd be brilliant if it were so sleazy.
-
@blakeyrat WTF are you even talking about now and how is it related to what I said?
-
@asdf said in Is "deploying to Docker containers" now a thing?:
WTF are you even talking about now and how is it related to what I said?
He likes to fain illiteracy to avoid serious arguments.
-
@boomzilla I'm also insane. Don't forget that.
-
@blakeyrat and a stupid moron doodoo head.
-
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
It's more a "general concept of OS configuration" than "well known".
If I say have a web application that I know works on say Alpine Linux version whatever, with NGINX and Python version 3.5 and I have a container.
I don't see how that is anyway conceptually different than knowing my Windows needs IIS, a particular web.config file and say installing .NET.
Then install your software. See the problem?
If I am configuring Windows Server I normally have to install IIS and then enable the various features I want to host the web application. So no I don't see it.
-
@boomzilla said in Is "deploying to Docker containers" now a thing?:
Oh. So docker always gets the latest? You can't specify a version? Yes, that's retarted if true.
No, it gets what you tell it to get.
If you build your image on top of another image (ex: on top of nginx), you specify it with FROM command:
FROM <image>:<tag>
tag
means version, so you have control.But if you want more control than selecting from one of the image versions published by the software author, you can put any files you want into the container (for example copy the downloaded library or wget it).
Updating everything to the newest version while building a Docker image is easier than updating all your machines. Maybe because of that, people who would usually not care about updates, now do the updates because it is easy.
Maybe @apapadimoulis's problem is not with Docker itself, but with his coworkers who use it in a way that breaks his program.
-
@blakeyrat said in Is "deploying to Docker containers" now a thing?:
@boomzilla I'm also insane. Don't forget that.
Y
-
@boomzilla said in Is "deploying to Docker containers" now a thing?:
He likes to fain illiteracy to avoid serious arguments.
A shame. Because if he actually knew what he was talking about, he might have written a long rant about how "object handle" (Win32) is a much better name for a generic resource handle than "file descriptor" (POSIX), and how open-source software ruins the English language. I might even have found that funny and agreed with the serious part of it.
Unfortunately, he chose the option "incoherent rambling" instead.
-
@blakeyrat said in Is "deploying to Docker containers" now a thing?:
@accalia said in Is "deploying to Docker containers" now a thing?:
it's great for open source projects on the raw and bleeding edge where version 1.0.1 and version 1.0.2 can have different behaviors, or for when the developers chose to code in ruby and found their product is so complicated and the deployment steps are so arcane that th literally the only way someone other than them was going to get it was if they distributed it in docker.
So it's a great idea for shitty products made by incompetents.
that's what i said, yes.
did it sound like i was endorsing the product?
-
So it sounds like Docker is there to solve the "Works on my machine" problems for crappy developers. Got it!
-
@jaming Probably not completely unlike how IDEs solve the problem of "remembering method names" for crappy developers!
-
@boomzilla Yeah, if only IDE's came in Docker containers... Then I wouldn't have to configure my installed JRE's!
-
@jaming That's called the Visual Studio approach: Just install everything together with the IDE, no matter whether the developer actually needs it or not.
-
@asdf You're aware the installer allows you to pick and choose components, right? You don't have to install the lot. Plus a lot of SDKs exist entirely separately (Windows Phone SDK and Azure SDK spring to mind).
-
@RaceProUK that hasn't been my experience - spin yourself up a VM and try installing just the minimum to get C++ working, then watch what all it installs. I made the mistake of fighting with it on my primary system and now I have some software that won't uninstall because it is missing some dependency that I can't find. (Who makes an uninstaller require dependencies!?)
-
@asdf said in Is "deploying to Docker containers" now a thing?:
@apapadimoulis said in Is "deploying to Docker containers" now a thing?:
Windows has permissions, processes, service management, threads, and they're all integrated, because they should be.
Which of those things (except service management, which is systemd's job, but who cares, it's part of the base OS image) is not offered by Linux as well?
IIRC, service management per se is not part of the Windows kernel either. It's instead layered on top. (That's a sensible thing.) Given that, arguing that service management isn't strictly part of Linux but is part of Windows is meaningless as you've ceased to compare morally equivalent things. Once you compare OS kernel plus the usual supporting user-space executables, you don't see nearly as big a difference in fundamental capabilities.
There are differences, but they are differences in the details.
-
@LB_ said in Is "deploying to Docker containers" now a thing?:
Who makes an uninstaller require dependencies!?
Microsoft, if your report is accurate.
-
@RaceProUK said in Is "deploying to Docker containers" now a thing?:
You're aware the installer allows you to pick and choose components, right? You don't have to install the lot.
Try and install Visual Studio 2015 please. In the installer, uncheck everything except C++. VS will install:
- Loads of Azure crap
- Loads of SQL Server crap
- Loads of stuff for .Net developers
All of which takes up a few gigs of space and is completely unnecessary. You can uninstall those 20-30 different software packages manually, but that's super-annoying and you have to do it again every time you install a major update.
-
@LB_ said in Is "deploying to Docker containers" now a thing?:
@RaceProUK that hasn't been my experience - spin yourself up a VM and try installing just the minimum to get C++ working, then watch what all it installs. I made the mistake of fighting with it on my primary system and now I have some software that won't uninstall because it is missing some dependency that I can't find. (Who makes an uninstaller require dependencies!?)
Yeah, the VS installer is pure crap. And more fun, after you get the minimal C++ env up? Try taking care of all the updates it thinks you need. Some will fail because you didn't install it. (Azure!)
-
@dcon said in Is "deploying to Docker containers" now a thing?:
Try taking care of all the updates it thinks you need
Yeah, that's the worst part: After installing a lot of shit you explicitly said you didn't want, it prompts you to install even more cruft. And it won't stop nagging you about it.
-
@asdf Then you have to come to DailyWTF forums and bitch about it! There's a little brainworm that compels you.
-
@blakeyrat said in Is "deploying to Docker containers" now a thing?:
Then you have to come to DailyWTF forums and bitch about it! There's a little brainworm that compels you.
Can someone please reinstall blakey's AI? I think it's been infected with the @xaade virus, because I have no idea what it's trying to tell me.
INB4 xaade is a blakeyalt.
-
@asdf said in Is "deploying to Docker containers" now a thing?:
Yeah, that's the worst part: After installing a lot of shit you explicitly said you didn't want, it prompts you to install even more cruft. And it won't stop nagging you about it.
And won't install some of it because yet another component wasn't installed.
-
Is this another thread where people bitch about something that totally unrelated to the thread subject yet again.
-
@lucas1 YMBNH
-
@Adynathos said in Is "deploying to Docker containers" now a thing?:
Maybe because of that, people who would usually not care about updates, now do the updates because it is easy.
Does the Windows 10 docker restart itself when it feels like it?
-
@lucas1 said in Is "deploying to Docker containers" now a thing?:
Is this another thread where people bitch about something that totally unrelated to the thread subject yet again.
AKA every topic.
-
@asdf said in Is "deploying to Docker containers" now a thing?:
Try and install Visual Studio 2015 please
Try and install Node.js and use it on Windows. Sooner or later you get to a package that demands that you install Visual Studio in order to compile dependencies using a C++ compiler. Now you have Azure stuff for your friggan Node dev environment.
-
@Yamikuronue You don't need to install the whole of Visual Studio. All you need is the compiler toolchain, and that is part of the Windows SDK, which has its own installer separate from Visual Studio.
-
@RaceProUK Which is why the error reads
"error: Can't find "msbuild.exe". Do you have Microsoft Visual Studio C++ 2008 installed?"
(Or it used to. Eventually Microsoft started shipping the build utilities separately and the error was updated.)
-
@Yamikuronue As far as I can tell, MS has always provided the build tools separately, even back in the days of Visual Studio 6. All that error message proves is someone sucks at writing error messages.
-
@RaceProUK https://github.com/nodejs/node-gyp/issues/629 begs to differ
-
@Yamikuronue So because a bunch of idiots can't search, I must be lying?
Versions going back way before .NET was even an idea. Hell, some of them are probably older than Visual Studio.
-
@Yamikuronue said in Is "deploying to Docker containers" now a thing?:
begs to differ
@Groaner might even say that Windows users feel gypped.