Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Sapozhnik
Jan 2, 2005

Nap Ghost
what's a good tool for building docker images

do people really use docker's own container build system these days or is there something better

Adbot
ADBOT LOVES YOU

gonadic io
Feb 16, 2011

>>=

Sapozhnik posted:

what's a good tool for building docker images

do people really use docker's own container build system these days or is there something better

We build ours as part of our circleci pipeline, save to your favourite cloud's container registry.

necrotic
Aug 2, 2005
I owe my brother big time for this!

Sapozhnik posted:

what's a good tool for building docker images

do people really use docker's own container build system these days or is there something better

yes people really use it a lot.

animist
Aug 28, 2018
looking through old projects and found the time I tried to stuff the xilinx verilog compiler into a docker image

that thing did not want to fit into sub-5-gigabytes, let me tell you

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Sapozhnik posted:

what's a good tool for building docker images

do people really use docker's own container build system these days or is there something better

We use droneci which has an ECR plugin, so one of the ci steps packages up the build artifacts using a Dockerfile and uploads to ECR. Under the hood, it's just running docker commands, though.

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

Jabor posted:

Implying someone works at the turd-shunting yard is a zero-cost insult, so it's not surprising that it just got optimized away in hackbunny's mental model

oh, that. well, live by the diss, die by the diss. no regrets

my homie dhall
Dec 9, 2010

honey, oh please, it's just a machine
The only problem/gripe I’ve had with using dockerfiles is that afaik you can’t get a byte for byte replica of your artifacts on repeated builds for some reason. I think the docker plugin for bazel can do it, but the hashes always came out different for us even with the most basic + deterministic builds

Nomnom Cookie
Aug 30, 2009



Sapozhnik posted:

what's a good tool for building docker images

do people really use docker's own container build system these days or is there something better

docker is documented which is my standard of quality in 2018. idc if it’s idiot poo poo garbage if someone wrote down what the fuckin thing does when

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


i'm only just starting to get caught up on this whole container fad, so I wanna check some clarification here

am I right in thinking that kubernetes is, roughly, a replacement for the part of docker that's about creating and managing containers (but still uses docker's containers, just not it's... er, factories, i suppose)?

Oneiros
Jan 12, 2007



Ciaphas posted:

i'm only just starting to get caught up on this whole container fad, so I wanna check some clarification here

am I right in thinking that kubernetes is, roughly, a replacement for the part of docker that's about creating and managing containers (but still uses docker's containers, just not it's... er, factories, i suppose)?

kubernetes a container orchestration tool (can handle building, deploying, running, scaling, etc). there's also nomad (hashicorp), mesos (apache), swarm (docker), and probably a few others who I can't be bothered to remember.

very roughly speaking they're all looking to solve the same problem (how to manage hundreds of containerized applications/services across a cluster or clusters of hosts) but with different bells and whistles and optimizations.

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


and--again, i'm being broad as hell on purpose here--these "containers" are conceptually either VMs writ small, or jailed environments writ large? sort of? (ed: maybe "a lightweight VM utterly dedicated to running a single app with the same environment every time")

this kind of deployment stuff is beyond my knowledge in general but i figure i should at least pretend to be caught up, $CURRENT_JOB thinks virtual machines are just the most amazing new hotness :v:

Ciaphas fucked around with this message at 04:21 on Dec 13, 2018

Oneiros
Jan 12, 2007



VMs, are, well, virtual machines; you're running a full os/app stack in a virtualized hardware environment. containers use namespaces/cgroups to isolate processes & resources from each other while still running on top of the same kernel.

i.e. with VMs you can have multiple, completely distinct OSs running simultaneously on top of the same hardware/host OS thru a hypervisor. with containers you can have multiple processes/groups of processes and resources that are logically isolated from each other by the kernal. both let you generate artifacts (images, or configuration files to build such) so that you can deploy a service along with all the necessary environment (either a complete OS for VMs or whatever bits and bobs you need on top of the kernal for containers) to a generic host in a repeatable, scalable fashion.

i'm probably making hash out of it but that's my 101 level understanding of VMs and containers.

Oneiros fucked around with this message at 04:45 on Dec 13, 2018

Oneiros
Jan 12, 2007



[quote is not edit]

Sapozhnik
Jan 2, 2005

Nap Ghost
containers is when you take the concept of a single statically linked binary and then you overcomplicate the absolute living poo poo out of it

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


Sapozhnik posted:

containers is when you take the concept of a single statically linked binary and then you overcomplicate the absolute living poo poo out of it

this was kind of my read from the start but i felt like that was way too simple to be right so i didn't say so, lol

alright, thanks, at least I have the mile-high view now

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

A Docker container does two basic things:

1) It isolates an application's filesystem calls and shows it a virtual filesystem with just whatever you put in the container

2) It isolates an application's network communication by acting like a proxy + reverse proxy towards the rest of the local network

That's the core functionality as I see it. I think it's a useful way to grok how it differs from a VM (eg why you still need to putz with the host's kernel settings when running Elasticsearch in a container - a VM would have its own).

The rest of the Docker ecosystem is """just""" support for building such containers in a manageable way (Dockerfiles which define Docker images which are instantiated into Docker containers) and for deploying, connecting and monitoring them. That ecosystem can get hilariously Rube Goldberg-esque when you have thousands of containers replicated on servers across the world, or when you read too much HackerNews and think you're running a Fortune 500 infrastructure from your basement.

redleader
Aug 18, 2005

Engage according to operational parameters
i shunt turds all day ama

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



redleader posted:

i shunt turds all day ama

where do they go

Achmed Jones
Oct 16, 2004



Krankenstyle posted:

where do they go

witness their posts

Nomnom Cookie
Aug 30, 2009



containers are vms except not really. like was pointd out upthread if you actually had a static binary that would be good enough. you dont' though, you have a pile of poo poo so instead you make it all into container images and can treat them like static binaries. then docker runs your binary in a jail

k8s and other container schedulers are for scaling this up to a bunch of hosts without really knowing what youre doing. if you install enough extensions you can build AWS (but containers) on top of AWS. mainly this is interesting because booting a vm takes a while. also you can oversubscribe containers if the oom killer is your buddy

Soricidus
Oct 21, 2010
freedom-hating statist shill

NihilCredo posted:

A Docker container does two basic things:

1) It isolates an application's filesystem calls and shows it a virtual filesystem with just whatever you put in the container

2) It isolates an application's network communication by acting like a proxy + reverse proxy towards the rest of the local network

That's the core functionality as I see it. I think it's a useful way to grok how it differs from a VM (eg why you still need to putz with the host's kernel settings when running Elasticsearch in a container - a VM would have its own).

The rest of the Docker ecosystem is """just""" support for building such containers in a manageable way (Dockerfiles which define Docker images which are instantiated into Docker containers) and for deploying, connecting and monitoring them. That ecosystem can get hilariously Rube Goldberg-esque when you have thousands of containers replicated on servers across the world, or when you read too much HackerNews and think you're running a Fortune 500 infrastructure from your basement.

it also isolates it from other processes etc.

and the network isolation is not a fundamental part of containers, you can use the macvlan or ipvlan drivers to connect them more directly to the local network if you want

cowboy beepboop
Feb 24, 2001

containers are also good for making your devs not do lazy stateful poo poo on the filesystem and dockerfiles are an ok way of ensuring you can build your app again without the special snowflake server set up by guy who left 6 years ago

Osmosisch
Sep 9, 2007

I shall make everyone look like me! Then when they trick each other, they will say "oh that Coyote, he is the smartest one, he can even trick the great Coyote."



Grimey Drawer

my stepdads beer posted:

containers are also good for making your devs not do lazy stateful poo poo on the filesystem and dockerfiles are an ok way of ensuring you can build your app again without the special snowflake server set up by guy who left 6 years ago

Yeah they're more about enforcing a clean reproducible environment for the application than anything else in my experience.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.
I still :lol: about people rewriting FreeBSD’s jails in a Linux as this incredibly new amazing thing.

MononcQc
May 29, 2007

leper khan posted:

I still :lol: about people rewriting FreeBSD’s jails in a Linux as this incredibly new amazing thing.

FreeBSD jails are objectively better but all the related tooling is absolutely aimed at sysadmins. What Docker did is target devs as an audience and it made a huge difference in adoption.

distortion park
Apr 25, 2011


My experience with kubernetes (well openshift) is that writing the configuration sucks hard but is still better than all the previous deployment processes. Openshift can do CI as well which is cool

Sapozhnik
Jan 2, 2005

Nap Ghost
k8s and docker have a legitimate use in situations where you've got 10,000 applications and 10,000 servers and installing all those applications on all those servers isn't really practical, so you want to decouple applications from the physical servers they are installed and running on. classic tools like rpm are too heavy and static and single-instance-focused to usefully accomplish this.

there's also the fact that rpm is just a bad piece of software in general and the guy who wrote it did not end up leaving rh voluntarily.

docker itself is a bundle of unrelated ideas and unrelated tools. there's no reason why the container build tool and the container runtime both have to be a part of "docker", for instance. there's also no essential reason for containers to be part of the picture in a landscape where you manage immutable and automatically-constructed cattle instead of hand-assembled pets; nobody has any reason to do the latter even for hobby projects these days.

a good way to accomplish the best of both worlds would be to use rpm-ostree to turn rpm into a build tool instead of a system management tool, then construct and discard immutable system images which you can still log into and debug in a fairly straightforward way. but it doesn't have any traction and it doesn't have the ecosystem that docker has. people insisting on using loving ubuntu for anything ever doesn't help

idk i'm too tired to keep fighting against the tide of this crap. i just feel like we could do better. the people pushing this brave new world have some legitimately good ideas but they're throwing the baby out with the bathwater.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
well perhaps it's because tools like docker and ubuntu have actually taken the time to be, you know, end-user friendly by providing things that seem alien to some opensource fans like "friendly documentation" and "relatively clear error messages"

Sapozhnik
Jan 2, 2005

Nap Ghost
installing ubuntu need only yield one error message: "your poo poo is hosed, my dude"

you know what else has good documentation? php

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Sapozhnik posted:

you know what else has good documentation? php

Honestly, this probably accounts for a lot of its popularity.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Finster Dexter posted:

Honestly, this probably accounts for a lot of its popularity.
exactly

so instead of whining about people not making the best technology choices maybe they should be enticed to choose them instead of snarkily assuming that "nobody cares"

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Sapozhnik posted:

k8s and docker have a legitimate use in situations where you've got 10,000 applications and 10,000 servers and installing all those applications on all those servers isn't really practical, so you want to decouple applications from the physical servers they are installed and running on. classic tools like rpm are too heavy and static and single-instance-focused to usefully accomplish this.

there's also the fact that rpm is just a bad piece of software in general and the guy who wrote it did not end up leaving rh voluntarily.

docker itself is a bundle of unrelated ideas and unrelated tools. there's no reason why the container build tool and the container runtime both have to be a part of "docker", for instance. there's also no essential reason for containers to be part of the picture in a landscape where you manage immutable and automatically-constructed cattle instead of hand-assembled pets; nobody has any reason to do the latter even for hobby projects these days.

a good way to accomplish the best of both worlds would be to use rpm-ostree to turn rpm into a build tool instead of a system management tool, then construct and discard immutable system images which you can still log into and debug in a fairly straightforward way. but it doesn't have any traction and it doesn't have the ecosystem that docker has. people insisting on using loving ubuntu for anything ever doesn't help

idk i'm too tired to keep fighting against the tide of this crap. i just feel like we could do better. the people pushing this brave new world have some legitimately good ideas but they're throwing the baby out with the bathwater.

well constructed golden images were the pinnacle of server management and i'll fight anyone who disagrees

kubernetes has largely just turned that concept into a herd of pets managing cattle containers while the ops team tears their hair out making sure that all of k8s's inscrutable internals are working correctly so the fleet of 10,000 containers serving a fart app can continue to run

redleader
Aug 18, 2005

Engage according to operational parameters

Sapozhnik posted:

docker itself is a bundle of unrelated ideas and unrelated tools. there's no reason why the container build tool and the container runtime both have to be a part of "docker", for instance.

branding, my dude

Shaggar
Apr 26, 2006

Blinkz0rz posted:

well constructed golden images were the pinnacle of server management and i'll fight anyone who disagrees

kubernetes has largely just turned that concept into a herd of pets managing cattle containers while the ops team tears their hair out making sure that all of k8s's inscrutable internals are working correctly so the fleet of 10,000 containers serving a fart app can continue to run

y do you even have servers. just deploy to azure paas.

Good Sphere
Jun 16, 2018

Dear Journal: today, i was a horrible horrible programmer. i did not get anything accomplished. just total frustration trying to get UIViews to animate correctly

akadajet
Sep 14, 2003

Good Sphere posted:

Dear Journal: today, i was a horrible horrible programmer. i did not get anything accomplished. just total frustration trying to get UIViews to animate correctly

have you tried react native?

Good Sphere
Jun 16, 2018

akadajet posted:

have you tried react native?

no, what are the benefits? i've been working on a camera effects app a year+ using pretty much swift, metal and cifilters

btw i got the animation to work

Soricidus
Oct 21, 2010
freedom-hating statist shill
ctps: spent the day deleting old hilariously inaccurate documentation and replacing it with new documentation that will be old and hilariously inaccurate within a week

my homie dhall
Dec 9, 2010

honey, oh please, it's just a machine

Blinkz0rz posted:

kubernetes has largely just turned that concept into a herd of pets managing cattle containers while the ops team tears their hair out making sure that all of k8s's inscrutable internals are working correctly so the fleet of 10,000 containers serving a fart app can continue to run

yes, that’s exactly the point. instead of ops managing several different kinds of pets, it manages just one kind of pet.

and no, you absolutely don’t need 10000 instance or application clusters to make k8s a worthwhile endeavor. you’d much rather manage a single cluster of k8s rather than every component that each of your dev teams need. K8s doco and code is rough, I agree, but it’s way better than anything you’re getting from your application teams. being able to scale to 10000 nodes “easily” is just a very nice plus.

Adbot
ADBOT LOVES YOU

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

akadajet posted:

have you tried react native?

no trolling in the terrible programmers thread cmon now

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply