80 lines
2.0 KiB
Docker
80 lines
2.0 KiB
Docker
ARG BUILD_FROM
|
|
FROM $BUILD_FROM
|
|
|
|
# Setup base
|
|
ARG LIBWEBSOCKETS_VERSION
|
|
ARG TTYD_VERSION
|
|
RUN \
|
|
set -x \
|
|
&& apk add --no-cache \
|
|
bash-completion \
|
|
pulseaudio-utils \
|
|
alsa-plugins-pulse \
|
|
bluez \
|
|
git \
|
|
tinc \
|
|
libuv \
|
|
mosquitto-clients \
|
|
nano \
|
|
openssh \
|
|
pwgen \
|
|
tmux \
|
|
vim \
|
|
\
|
|
&& apk add --no-cache --virtual .build-dependencies \
|
|
bsd-compat-headers \
|
|
build-base \
|
|
linux-headers \
|
|
cmake \
|
|
json-c-dev \
|
|
libuv-dev \
|
|
openssl-dev \
|
|
zlib-dev \
|
|
\
|
|
&& sed -i "s/ash/bash/" /etc/passwd \
|
|
\
|
|
&& git clone --branch "v${LIBWEBSOCKETS_VERSION}" --depth=1 \
|
|
https://github.com/warmcat/libwebsockets.git /tmp/libwebsockets \
|
|
\
|
|
&& mkdir -p /tmp/libwebsockets/build \
|
|
&& cd /tmp/libwebsockets/build \
|
|
&& cmake .. \
|
|
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCMAKE_VERBOSE_MAKEFILE=TRUE \
|
|
-DLWS_IPV6=ON \
|
|
-DLWS_STATIC_PIC=ON \
|
|
-DLWS_UNIX_SOCK=OFF \
|
|
-DLWS_WITH_LIBUV=ON \
|
|
-DLWS_WITH_SHARED=ON \
|
|
-DLWS_WITHOUT_TESTAPPS=ON \
|
|
&& make \
|
|
&& make install \
|
|
\
|
|
&& git clone --branch main --single-branch \
|
|
https://github.com/tsl0922/ttyd.git /tmp/ttyd \
|
|
&& git -C /tmp/ttyd checkout "${TTYD_VERSION}" \
|
|
\
|
|
&& mkdir -p /tmp/ttyd/build \
|
|
&& cd /tmp/ttyd/build \
|
|
&& cmake .. \
|
|
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCMAKE_VERBOSE_MAKEFILE=TRUE \
|
|
&& make \
|
|
&& make install \
|
|
\
|
|
&& apk del --no-cache --purge .build-dependencies \
|
|
&& rm -f -r \
|
|
/root/.cache \
|
|
/root/.cmake \
|
|
/tmp/*
|
|
|
|
# Add YAML highlighting for nano
|
|
ADD https://raw.githubusercontent.com/scopatz/nanorc/master/yaml.nanorc /usr/share/nano/yaml.nanorc
|
|
RUN sed -i 's/^#[[:space:]]*\(include "\/usr\/share\/nano\/\*\.nanorc".*\)/\1/' /etc/nanorc
|
|
|
|
|
|
# Copy data
|
|
COPY rootfs /
|