Skip to content

Commit 87feac8

Browse files
author
Mohammed Ehab
committed
docs: add Alpine Linux build instructions
The README listed Alpine as supported but only documented Debian/Ubuntu build dependencies. Add an Alpine section: since no musllinux wheels are published, the client always builds from source on Alpine, and the minimal images need the full toolchain via apk. Notes that libexecinfo-dev is no longer required (removed in Alpine 3.17+), reflecting the execinfo.h fix. Verified the documented apk set builds and imports cleanly on python:3.13-alpine3.20.
1 parent 400c645 commit 87feac8

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,29 @@ RUN pip install \
5050
awslambdaric
5151
```
5252

53+
The `apt-get` snippet above is for Debian/Ubuntu. On **Alpine Linux** the prebuilt
54+
`manylinux2014` wheels are not compatible (Alpine uses musl libc and no `musllinux`
55+
wheels are published), so the client is always built from source. Alpine's base
56+
images are minimal, so you must install the full build toolchain via `apk`. Note
57+
that `libexecinfo-dev` is **not** required (it was removed in Alpine 3.17+); the
58+
client builds without it:
59+
60+
```dockerfile
61+
# Install aws-lambda-cpp build dependencies (Alpine Linux)
62+
RUN apk add --no-cache \
63+
build-base \
64+
libtool \
65+
autoconf \
66+
automake \
67+
cmake \
68+
curl
69+
70+
# Install the function's dependencies
71+
RUN pip install \
72+
--target ${FUNCTION_DIR} \
73+
awslambdaric
74+
```
75+
5376
The next step would be to set the `ENTRYPOINT` property of the Docker image to invoke the Runtime Interface Client and then set the `CMD` argument to specify the desired handler.
5477

5578
Example Dockerfile (to keep the image light we use a multi-stage build):

0 commit comments

Comments
 (0)