Sign inSign up

praekeltfoundation/alpine-buildpack-deps

By praekeltfoundation

•Updated over 7 years ago

buildpack-deps on Alpine Linux (https://git.io/vK3t4)

Image
6

7.0K

praekeltfoundation/alpine-buildpack-deps repository overview

⁠alpine-buildpack-deps

Docker Pulls Build Status

An attempt at a "buildpack-deps"-like Docker image with Alpine Linux

⁠Images

The base image is the official Docker Alpine image⁠.

This repo contains a set of images similar to the official buildpack-deps⁠ images.

TagBase imageDescription
curlalpine:3.xAlpine 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)

⁠Caveats

  • A best effort was made to find equivalent Alpine packages for the Debian packages in the official buildpack-deps. The packages may not always be 100% equivalent.
  • The code you're compiling in buildpack-deps could make assumptions about the host that are not necessarily true for Alpine Linux. For example:
    • That the standard Unix tools are the GNU implementations
    • That the standard C library is glibc
    • That the paths to development files are the Debian paths
  • The default/latest 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.

⁠Packages

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

Upstream⁠

buildpack-depsalpine-buildpack-deps
ca-certificatesca-certificates*
curlcurl
dirmngrgnupg
gnupggnupg
wgetbusybox/(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

Upstream⁠

buildpack-depsalpine-buildpack-deps
bzr*bzr*
gitgit
mercurialmercurial
openssh-clientopenssh-client
procpsprocps
subversionsubversion

*bzr was removed⁠ from the latest buildpack-deps variants. Starting with Alpine 3.7, bzr is not present in alpine-buildpack-deps either.

⁠latest

Upstream⁠

buildpack-depsalpine-buildpack-deps
autoconfautoconf
automakeautomake
bzip2bzip2
dpkg-devdpkg, dpkg-dev
filefile
g++g++
gccgcc
imagemagickimagemagick-dev
libbz2-devbzip2-dev
libc6-devlibc-dev, linux-headers
libcurl4-openssl-devcurl-dev
libdb-devdb-dev
libevent-devlibevent-dev
libffi-devlibffi-dev
libgdbm-devgdbm-dev
libgeoip-devgeoip-dev
libglib2.0-devglib-dev
libjpeg-devjpeg-dev
libkrb5-devkrb5-dev
liblzma-devxz-dev
libmagickcore-devimagemagick-dev
libmagickwand-devimagemagick-dev
libmysqlclient-devmariadb-dev*
libncurses5-devncurses-dev
libncursesw5-devncurses-dev
libpng-devlibpng-dev
libpq-devpostgresql-dev*
libreadline-devreadline-dev
libsqlite3-devsqlite-dev
libssl-devopenssl-dev/libressl-dev**
libtoollibtool
libwebp-devlibwebp-dev
libxml2-devlibxml2-dev
libxslt-devlibxslt-dev
libyaml-devyaml-dev
makemake
patchpatch
xz-utilsxz
zlib1g-devzlib-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.

Tag summary

Content type

Image

Digest

Size

151.7 MB

Last updated

over 7 years ago

docker pull praekeltfoundation/alpine-buildpack-deps