Table of Contents

About

This docker build file is inspired by gangefors's build and is meant to build AirDC++ at version 2.12.1 due to the latest portable builds after 2.12.1 being broken.

Usage

Check out the bundle with Subversion to an empty directory:

svn export --force https://svn.grimore.org/docker/build/airdcpp/

change to that directory and issue:

docker build -t TAG .

where:

After airdcpp is built, a container can be created and ran either via docker run or deployed within the swarm with docker stack deploy.

Note that if the image is to be deployed to a swarm, then more than likely the image should be committed to a local registry serving the local docker swarm.

Dockerfile

The Dockerfile uses some additional files that are available from the SVN repositories (in the rootfs sub-folder) and copied into the build environment that are meant to bootstrap a fresh AirDC++ install.

FROM debian:bookworm-slim
 
# update package manager
RUN  apt-get update -y && \
     apt-get upgrade -y && \
     apt-get dist-upgrade -y && \
     apt-get -y autoremove && \
     apt-get clean
 
# install required packages
RUN apt-get -y install \
    curl
 
# UTF-8 support
RUN apt-get install -y coreutils locales && \
    sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
    locale-gen && \
    dpkg-reconfigure --frontend=noninteractive locales && \
    update-locale LANG=en_US.UTF-8
 
# Install node-js
RUN curl -fsSL https://deb.nodesource.com/setup_current.x | bash - && \
    apt-get install -y nodejs && \
    node --version && npm --version
 
# install airdcpp
WORKDIR /opt
RUN curl -fLs https://web-builds.airdcpp.net/stable/airdcpp_2.12.1_webui-2.12.0_64-bit_portable.tar.gz -o airdcpp_2.12.1_webui-2.12.0_64-bit_portable.tar.gz && \
    tar -xpvf airdcpp_2.12.1_webui-2.12.0_64-bit_portable.tar.gz && \
    rm airdcpp_2.12.1_webui-2.12.0_64-bit_portable.tar.gz && \
    ls -lR
 
# cleanup
RUN apt-get autoremove -y
 
# add the filesystem
ADD rootfs /
 
# expose ports
EXPOSE 5600 5601 21248 21248/udp 21249
 
ENTRYPOINT [ "/opt/airdcpp-webclient/airdcppd" ]