Here is the Dockerfile
erlang# ===== Stage 1: BUILD OTP 27.2 =====
FROM debian:bookworm AS build
RUN apt-get update && apt-get install -y \
build-essential \
autoconf \
automake \
libssl-dev \
libncurses5-dev \
libncursesw5-dev \
openssl \
wget \
tar
WORKDIR /src
RUN wget https://github.com/erlang/otp/archive/refs/tags/OTP-27.2.tar.gz -O otp.tar.gz && \
tar xzf otp.tar.gz
WORKDIR /src/otp-OTP-27.2
RUN ./configure --prefix=/opt/erlang --with-ssl --enable-tls
RUN make -j$(nproc)
RUN make install
# ===== Stage 2: Runtime =====
FROM debian:bookworm
RUN apt-get update && apt-get install -y openssl && rm -rf /var/lib/apt/lists/*
COPY --from=build /opt/erlang /opt/erlang
ENV PATH="/opt/erlang/bin:${PATH}"
WORKDIR /app
RUN mkdir -p /etc/pki/tls/certs /etc/pki/tls/private
RUN openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/localhost.key \
-out /etc/pki/tls/certs/localhost.crt \
-subj "/CN=localhost"
COPY ssl_dist.conf .
COPY epmd_static_map.erl .
RUN erlc epmd_static_map.erl
Here are the commands I ran
sudo docker build -t erlang-epmdless .
docker network create mynet
docker run -d --name node1 --hostname node1 --network mynet erlang-epmdless erl -name node1@node1 -proto_dist inet_tls -ssl_dist_optfile /app/ssl_dist.conf -epmd_module epmd_static_map -start_epmd false -noshell
when running above getting following
Protocol ‘inet_tls’: not supported
Tried following also by changing version still same
erlangFROM erlang:27
# Install openssl for certificate generation
RUN apt-get update && apt-get install -y openssl && rm -rf /var/lib/apt/lists/*
# Create directories for certificates
RUN mkdir -p /etc/pki/tls/certs /etc/pki/tls/private
# Generate self-signed certificate (CN=localhost; adjust if needed for production)
RUN openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/localhost.key \
-out /etc/pki/tls/certs/localhost.crt \
-subj "/CN=localhost"
# Set working directory
WORKDIR /app
# Copy configuration files
COPY ssl_dist.conf .
COPY epmd_static_map.erl .
# Compile the custom EPMD module
RUN erlc epmd_static_map.erl