buildpack-deps on Alpine Linux (https://git.io/vK3t4)
7.0K
An attempt at a "buildpack-deps"-like Docker image with Alpine Linux
The base image is the official Docker Alpine image.
This repo contains a set of images similar to the official buildpack-deps images.
| Tag | Base image | Description |
|---|---|---|
curl | alpine:3.x | Alpine with curl and wget |
scm | :curl | :curl with source control management (SCM) tools |
slim | :scm | :scm with build tools and development libraries |
latest | :slim | :slim with database development libraries (see notes below) |
glibclatest tag for this image is not smaller than the Debian/Ubuntu-based buildpack-deps images, although it is roughly the same size (~190MB compressed, ~660MB uncompressed). The reason for this is that the Alpine development libraries for PostgreSQL and MySQL are significantly bigger than the Debian ones. If you are hoping to make a small "buildpack-deps"-based Docker image, you're probably doing Docker images wrong.The packages in the curl and scm variants mostly have the same names in Alpine Linux as they do in the Debian/Ubuntu source. The translation of packages for the latest image is a bit more complicated, though. The packages used are listed below.
curl| buildpack-deps | alpine-buildpack-deps |
|---|---|
ca-certificates | ca-certificates* |
curl | curl |
dirmngr | gnupg |
gnupg | gnupg |
wget | busybox/(libressl/openssl)* |
Additionally, we install the tar package in the curl image. This installs the GNU version of tar, which has more features than the BusyBox tar provided with Alpine Linux. In particular, the --strip-components option only available in GNU tar is commonly used in the Docker official images when extracting source code from tarballs.
*Alpine Linux uses BusyBox which includes an implementation of wget. In order for this wget to verify certificates, the libressl (Alpine 3.5+) or openssl package is required, both of which include a certificate bundle. The ca-certificates package also includes a certificate bundle and is required for Curl to be able to verify certificates.
scm| buildpack-deps | alpine-buildpack-deps |
|---|---|
bzr* | bzr* |
git | git |
mercurial | mercurial |
openssh-client | openssh-client |
procps | procps |
subversion | subversion |
*bzr was removed from the latest buildpack-deps variants. Starting with Alpine 3.7, bzr is not present in alpine-buildpack-deps either.
latest| buildpack-deps | alpine-buildpack-deps |
|---|---|
autoconf | autoconf |
automake | automake |
bzip2 | bzip2 |
dpkg-dev | dpkg, dpkg-dev |
file | file |
g++ | g++ |
gcc | gcc |
imagemagick | imagemagick-dev |
libbz2-dev | bzip2-dev |
libc6-dev | libc-dev, linux-headers |
libcurl4-openssl-dev | curl-dev |
libdb-dev | db-dev |
libevent-dev | libevent-dev |
libffi-dev | libffi-dev |
libgdbm-dev | gdbm-dev |
libgeoip-dev | geoip-dev |
libglib2.0-dev | glib-dev |
libjpeg-dev | jpeg-dev |
libkrb5-dev | krb5-dev |
liblzma-dev | xz-dev |
libmagickcore-dev | imagemagick-dev |
libmagickwand-dev | imagemagick-dev |
libmysqlclient-dev | mariadb-dev* |
libncurses5-dev | ncurses-dev |
libncursesw5-dev | ncurses-dev |
libpng-dev | libpng-dev |
libpq-dev | postgresql-dev* |
libreadline-dev | readline-dev |
libsqlite3-dev | sqlite-dev |
libssl-dev | openssl-dev/libressl-dev** |
libtool | libtool |
libwebp-dev | libwebp-dev |
libxml2-dev | libxml2-dev |
libxslt-dev | libxslt-dev |
libyaml-dev | yaml-dev |
make | make |
patch | patch |
xz-utils | xz |
zlib1g-dev | zlib-dev |
*Alpine Linux doesn't have development packages for MySQL or PostgreSQL that include only the headers/libraries necessary for client-side libraries. These Alpine packages are quite large because they include server headers/libraries as well.
**Alpine Linux switched from OpenSSL to LibreSSL in version 3.5.
Content type
Image
Digest
Size
151.7 MB
Last updated
over 7 years ago
docker pull praekeltfoundation/alpine-buildpack-deps