Alpine Linux 3.7.0 Released
alpinelinux.org
alpinelinux.org
Running Arch at the moment but I am looking at Alpine or maybe one of the BSD's as an alternative.
https://www.theverge.com/2017/11/28/16709190/microsoft-windo...
Musl is a promising glibc replacement.
http://www.etalabs.net/compare_libcs.html
I believe it better overall.
- Support for EFI;
- Support in the installer for the GRUB bootloader
Significant Updates
- GCC 6.4
- LLVM 5.0
- Go 1.9 - Node.js 8.9 (LTS)
- Perl 5.26
- PostgreSQL 10
- Rust 1.22
One question that perhaps someone on this thread will know... why does it cache DNS differently from Ubuntu, and is there a way to fix it?
My app has a domain name for the database sever that I pass to Psycopg2.. say foobar.something.google-cloud.internal. It resolves to the private IP of my PostgreSQL sever.
The problem, is EVERY SINGLE database query is querying the DNS. I can sometimes push 10,000 DNS queries per second. 9,990 of those are for the same stupid database server. Kubernetes runs it's own DNS server which takes the load, but sometimes they get overwhelmed a bit. I am obviously doing something wrong, but not sure the path to explore down.
If I can fix this, then alpine is working pretty amazing for me :)
See this: https://github.com/gliderlabs/docker-alpine/blob/master/docs...
edit - so far no results, must need some other change to turn it on...
Musl libc's dns strategy should actually be faster than glibc when its used.
https://wiki.musl-libc.org/functional-differences-from-glibc...
That said a local cache would be ideal.
My apk list looks something like
gcc \
make \
libc-dev \
musl-dev \
linux-headers \
pcre-dev \
postgresql-dev \
zlib-dev \
jpeg-dev \
libxslt-dev \
libxml2-dev \
git \
so I see musl but glibc in there....I do not think I want to do the /etc/hosts thing, as the IP can change for some things.. I would rather just cache it locally for ? 1 minute or something
Alpine uses musl instead of glibc. Maybe you can find a way to run nscd on it but it doesn't seem very idiomatic for a container platform.
That said, I believe Alpine does have a glibc package which only adds a few MB. So @brianwawok can at least still run Alpine for the image size benefits if musl is unimportant to them.
B) If DNS actually becomes a legitimate bottleneck, you can just manually resolve the domain name and cache it. If the db sits behind a load balancer or does DNS round robing you can keep the cache time low and re-resolve on connection failures.
b) I think dnsmasq is a better answer. My DNS is already load balanced in k8s, but that is getting hit pretty hard.
on the other hand, debian, openwrt etc are built for multi-arch all the time.
I spent six months reviewing all the smaller distributions of Linux until I found one that would boot fast enough to be usable with QEMU. It works like a charm and i rock solid. I highly recommend it.
I most recently used Alpine and a RPi to make an appliance of sorts, that would wait for the SSID of my Olympus WiFi-enabled camera (it acts as an AP) to show up and then sync all new photos automatically [2].
[0]: https://wiki.alpinelinux.org/wiki/Raspberry_Pi
[1]: https://wiki.alpinelinux.org/wiki/Installation#Installation_Handbook
[2]: https://github.com/gvalkov/olympus-photosync-serverFor example, what are the pros and cons between using official Docker go image vs creating a custom image from an alpine image with apk add go?
If you're on Alpine Linux 3.6, you get access to Node.js 6.10.3 (or 7.10.1 in the nodejs-current package)
If you depend on targeting very specific versions of your runtime stack and also want to use Alpine, check if your stack offers official images based off of Alpine. For instance, node:8-alpine, python:3-alpine, etc.
It seems most projects will offer Alpine-based Docker images these days. They should update faster and more frequently, but that depends on each project.
Only negative thing I can think of is that that their support forums¹ are full of spam. [1] https://forum.alpinelinux.org/forum/4
Edit: why downvote, I like it that way, leaner OpenRC is great
Alpine aims to have a lean footprint and be highly configurable. I can't imagine using systemd for small-footprint systems, especially since systemd somewhat limits options for system organization.
As to the downvote, just consider it someone saying: "Your opinion is inconsistent with my agenda, and therefore invalid." It's meaningless.
[0]: https://www.youtube.com/watch?v=ERS1OSOTGpg