41 lines
1.6 KiB
Docker
41 lines
1.6 KiB
Docker
# Language runtimes (Node.js, Go, Rust, Python) are installed via devcontainer
|
|
# features. This Dockerfile handles Erlang/OTP (no feature available) and
|
|
# tools like Caddy, process-compose, rebar3, uv, ffmpeg, and exiftool.
|
|
|
|
FROM erlang:28-slim AS erlang
|
|
|
|
FROM mcr.microsoft.com/devcontainers/base:debian-13
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
ARG REBAR3_VERSION=3.24.0
|
|
ARG PROCESS_COMPOSE_VERSION=1.90.0
|
|
|
|
# Both erlang:28-slim and debian-13 are Trixie-based, so OpenSSL versions match.
|
|
COPY --from=erlang /usr/local/lib/erlang /usr/local/lib/erlang
|
|
RUN ln -sf /usr/local/lib/erlang/bin/* /usr/local/bin/
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libncurses6 libsctp1 \
|
|
build-essential pkg-config \
|
|
ffmpeg libimage-exiftool-perl \
|
|
sqlite3 libsqlite3-dev \
|
|
libssl-dev openssl \
|
|
gettext-base lsof iproute2 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN curl -fsSL "https://github.com/erlang/rebar3/releases/download/${REBAR3_VERSION}/rebar3" \
|
|
-o /usr/local/bin/rebar3 \
|
|
&& chmod +x /usr/local/bin/rebar3
|
|
|
|
RUN curl -fsSL "https://caddyserver.com/api/download?os=linux&arch=amd64" \
|
|
-o /usr/local/bin/caddy \
|
|
&& chmod +x /usr/local/bin/caddy
|
|
|
|
RUN curl -fsSL "https://github.com/F1bonacc1/process-compose/releases/download/v${PROCESS_COMPOSE_VERSION}/process-compose_linux_amd64.tar.gz" \
|
|
| tar xz -C /usr/local/bin process-compose \
|
|
&& chmod +x /usr/local/bin/process-compose
|
|
|
|
RUN curl -fsSL "https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz" \
|
|
| tar xz --strip-components=1 -C /usr/local/bin \
|
|
&& chmod +x /usr/local/bin/uv /usr/local/bin/uvx
|