diff --git a/docker/debian-build/Dockerfile b/docker/debian-build/Dockerfile
index e5f65ac90..19b4fcf2f 100644
--- a/docker/debian-build/Dockerfile
+++ b/docker/debian-build/Dockerfile
@@ -1,56 +1,95 @@
-# Build with:
-# docker build --pull -t svxlink-debian-build .
#
-# Run with:
-# docker run -it --rm --hostname debian-build svxlink-debian-build
+# Build container image with:
+# podman build --pull -t svxlink-debian-build .
+#
+# Optional build arguments:
+# --build-arg=FROM=
+# --build-arg=SOUNDS_VER=
+# --build-arg=SOUNDS_LANG=
+# --build-arg=SOUNDS_VOICE=
+# --build-arg=SOUNDS_RATE=
+# --build-arg=SOUNDS_URL=
+# --build-arg=GIT_URL_DEFAULT=
+# --build-arg=GIT_SSL_NO_VERIFY_DEFAULT=
+# --build-arg=GIT_BRANCH_DEFAULT=
+# --build-arg=NUM_CORES_DEFAULT=
+#
+# Run container with:
+# podman run -it --rm --hostname debian-build --userns=keep-id svxlink-debian-build
#
# For using sound inside the docker container add:
-# --privileged -v /dev/snd:/dev/snd
-# -e HOSTAUDIO_GID=$(stat -c "%g" /dev/snd/timer)
+# --privileged -v /dev/snd:/dev/snd
#
-# To import your git config add (mileage may vary):
-# -v ${HOME}/.gitconfig:/home/svxlink/.gitconfig:ro
+# To import your git config add:
+# -v ${HOME}/.gitconfig:/home/svxlink/.gitconfig:ro
#
-# To use a specific git repositoty instead of the default one:
-# -e GIT_URL=username@your.repo:/path/to/svxlink.git
+# To use a specific git repository instead of the default one:
+# -e GIT_URL=username@your.repo.srv:/path/to/svxlink.git
+# -e GIT_URL=https://your.repo.srv/path/to/svxlink.git
+# -e GIT_SSL_NO_VERIFY=true
#
# To build another branch than master:
-# -e GIT_BRANCH=the_branch
+# -e GIT_BRANCH=the_branch
+#
+# To use the local workingcopy rather then cloning the repo in the container:
+# -v $(pwd)/../..:/home/svxlink/svxlink:ro
#
# To use more than one CPU core when compiling:
-# -e NUM_CORES=8
+# -e NUM_CORES=8
+#
+# Build software with:
+# ./build-svxlink.sh
#
+# Run software with:
+# svxlink
-FROM debian
+ARG FROM=debian:latest
+
+FROM ${FROM}
MAINTAINER Tobias Blomberg
# Install required packages and set up the svxlink user
RUN apt-get update && \
apt-get -y install git cmake g++ make libsigc++-2.0-dev libgsm1-dev \
libpopt-dev tcl8.6-dev libgcrypt20-dev libspeex-dev \
- libasound2-dev alsa-utils vorbis-tools libqt4-dev \
- libopus-dev librtlsdr-dev libcurl4-openssl-dev curl sudo
+ libasound2-dev alsa-utils vorbis-tools qtbase5-dev \
+ qttools5-dev qttools5-dev-tools libopus-dev \
+ librtlsdr-dev libjsoncpp-dev libcurl4-openssl-dev \
+ libgpiod-dev libogg-dev curl sudo
#RUN apt-get -y install groff doxygen
+ARG SOUNDS_VER="19.09.99.3"
+ARG SOUNDS_LANG="en_US"
+ARG SOUNDS_VOICE="heather"
+ARG SOUNDS_RATE="16k"
+ARG SOUNDS_URL="https://github.com/sm0svx/svxlink-sounds-${SOUNDS_LANG}-${SOUNDS_VOICE}/releases/download/${SOUNDS_VER}/svxlink-sounds-${SOUNDS_LANG}-${SOUNDS_VOICE}-${SOUNDS_RATE}-${SOUNDS_VER}.tar.bz2"
+
# Install svxlink audio files
RUN mkdir -p /usr/share/svxlink/sounds && \
cd /usr/share/svxlink/sounds && \
- curl -LO https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/14.08/svxlink-sounds-en_US-heather-16k-13.12.tar.bz2 && \
+ curl -LO ${SOUNDS_URL} && \
tar xvaf svxlink-sounds-* && \
- ln -s en_US-heather-16k en_US && \
+ ln -s ${SOUNDS_LANG}-${SOUNDS_VOICE}-${SOUNDS_RATE} ${SOUNDS_LANG} && \
rm svxlink-sounds-*
-# Set up password less sudo for user svxlink
+# Set up password-less sudo for user svxlink
ADD sudoers-svxlink /etc/sudoers.d/svxlink
RUN chmod 0440 /etc/sudoers.d/svxlink
-ENV GIT_URL=https://github.com/sm0svx/svxlink.git \
- GIT_BRANCH=master \
- NUM_CORES=1
+ARG GIT_URL_DEFAULT="https://github.com/sm0svx/svxlink.git"
+ARG GIT_SSL_NO_VERIFY_DEFAULT="false"
+ARG GIT_BRANCH_DEFAULT="master"
+ARG NUM_CORES_DEFAULT="1"
+
+ENV GIT_URL=${GIT_URL_DEFAULT} \
+ GIT_SSL_NO_VERIFY=${GIT_SSL_NO_VERIFY_DEFAULT} \
+ GIT_BRANCH=${GIT_BRANCH_DEFAULT} \
+ NUM_CORES=${NUM_CORES_DEFAULT}
RUN useradd -s /bin/bash svxlink
ADD build-svxlink.sh /home/svxlink/
-RUN chown -R svxlink.svxlink /home/svxlink
+RUN chown -R svxlink:svxlink /home/svxlink
-ADD entrypoint.sh /
-ENTRYPOINT ["/entrypoint.sh"]
+WORKDIR /home/svxlink
+USER svxlink:svxlink
+ENTRYPOINT ["/bin/bash"]
diff --git a/docker/debian-build/build-svxlink.sh b/docker/debian-build/build-svxlink.sh
index 902993e19..a5cb4309a 100755
--- a/docker/debian-build/build-svxlink.sh
+++ b/docker/debian-build/build-svxlink.sh
@@ -1,25 +1,26 @@
-#!/bin/bash -xe
+#!/bin/bash -x
+
+set -euo pipefail
+
+GIT_BRANCH=${GIT_BRANCH:-master}
# Make sure that we are in the home directory
cd
# Clone or update the repo
if [[ ! -d svxlink ]]; then
- git clone $GIT_URL svxlink
+ git clone --branch=$GIT_BRANCH $GIT_URL svxlink
cd svxlink
else
cd svxlink
- git fetch
- git checkout master
- git reset --hard origin/master
-fi
-
-# Checkout the wanted branch
-if [ -n "$GIT_BRANCH" ]; then
- git checkout $GIT_BRANCH
+ if [[ -w . ]]; then
+ git fetch
+ git checkout $GIT_BRANCH
+ git reset --hard origin/$GIT_BRANCH
+ fi
fi
-# Find out how many cores we've got
+# How many cores to use during the build
num_cores=${NUM_CORES:-1}
# Create a build directory and build svxlink
diff --git a/docker/ubuntu-build/Dockerfile b/docker/ubuntu-build/Dockerfile
index 43b7ff37e..c7e53e74e 100644
--- a/docker/ubuntu-build/Dockerfile
+++ b/docker/ubuntu-build/Dockerfile
@@ -1,59 +1,96 @@
-# Build with:
-# docker build --pull -t svxlink-ubuntu-build .
#
-# Run with:
-# docker run -it --rm --hostname ubuntu-build svxlink-ubuntu-build
+# Build container image with:
+# podman build --pull -t svxlink-ubuntu-build .
+#
+# Optional build arguments:
+# --build-arg=FROM=
+# --build-arg=SOUNDS_VER=
+# --build-arg=SOUNDS_LANG=
+# --build-arg=SOUNDS_VOICE=
+# --build-arg=SOUNDS_RATE=
+# --build-arg=SOUNDS_URL=
+# --build-arg=GIT_URL_DEFAULT=
+# --build-arg=GIT_SSL_NO_VERIFY_DEFAULT=
+# --build-arg=GIT_BRANCH_DEFAULT=
+# --build-arg=NUM_CORES_DEFAULT=
+#
+# Run container with:
+# podman run -it --rm --hostname ubuntu-build --userns=keep-id svxlink-ubuntu-build
#
# For using sound inside the docker container add:
-# --privileged -v /dev/snd:/dev/snd
-# -e HOSTAUDIO_GID=$(stat -c "%g" /dev/snd/timer)
+# --privileged -v /dev/snd:/dev/snd
#
-# To import your git config add (your mileage may vary):
-# -v ${HOME}/.gitconfig:/home/svxlink/.gitconfig:ro
+# To import your git config add:
+# -v ${HOME}/.gitconfig:/home/svxlink/.gitconfig:ro
#
-# To use a specific git repositoty instead of the default one:
-# -e GIT_URL=username@your.repo:/path/to/svxlink.git
+# To use a specific git repository instead of the default one:
+# -e GIT_URL=username@your.repo.srv:/path/to/svxlink.git
+# -e GIT_URL=https://your.repo.srv/path/to/svxlink.git
+# -e GIT_SSL_NO_VERIFY=true
#
# To build another branch than master:
-# -e GIT_BRANCH=the_branch
+# -e GIT_BRANCH=the_branch
+#
+# To use the local workingcopy rather then cloning the repo in the container:
+# -v $(pwd)/../..:/home/svxlink/svxlink:ro
#
# To use more than one CPU core when compiling:
-# -e NUM_CORES=8
+# -e NUM_CORES=8
+#
+# Build software with:
+# ./build-svxlink.sh
#
+# Run software with:
+# svxlink
-FROM ubuntu
-MAINTAINER Tobias Blomberg
+ARG FROM=ubuntu:latest
+
+FROM ${FROM}
+MAINTAINER Tobias Blomberg
# Install required packages and set up the svxlink user
-RUN apt update && \
+RUN apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
- apt -y install git cmake g++ make libsigc++-2.0-dev libgsm1-dev \
- libpopt-dev tcl-dev libgcrypt20-dev libspeex-dev \
- libasound2-dev alsa-utils vorbis-tools qtbase5-dev \
- qttools5-dev qttools5-dev-tools libopus-dev \
- librtlsdr-dev libjsoncpp-dev libcurl4-openssl-dev \
- curl sudo
-#RUN apt -y install groff doxygen
+ apt-get -y install git cmake g++ make libsigc++-2.0-dev libgsm1-dev \
+ libpopt-dev tcl8.6-dev libgcrypt20-dev libspeex-dev \
+ libasound2-dev alsa-utils vorbis-tools qtbase5-dev \
+ qttools5-dev qttools5-dev-tools libopus-dev \
+ librtlsdr-dev libjsoncpp-dev libcurl4-openssl-dev \
+ libgpiod-dev libogg-dev curl sudo
+#RUN apt-get -y install groff doxygen
+
+ARG SOUNDS_VER="19.09.99.3"
+ARG SOUNDS_LANG="en_US"
+ARG SOUNDS_VOICE="heather"
+ARG SOUNDS_RATE="16k"
+ARG SOUNDS_URL="https://github.com/sm0svx/svxlink-sounds-${SOUNDS_LANG}-${SOUNDS_VOICE}/releases/download/${SOUNDS_VER}/svxlink-sounds-${SOUNDS_LANG}-${SOUNDS_VOICE}-${SOUNDS_RATE}-${SOUNDS_VER}.tar.bz2"
# Install svxlink audio files
RUN mkdir -p /usr/share/svxlink/sounds && \
cd /usr/share/svxlink/sounds && \
- curl -LO https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/19.09.99.1/svxlink-sounds-en_US-heather-16k-19.09.99.1.tar.bz2 && \
+ curl -LO ${SOUNDS_URL} && \
tar xvaf svxlink-sounds-* && \
- ln -s en_US-heather-16k en_US && \
+ ln -s ${SOUNDS_LANG}-${SOUNDS_VOICE}-${SOUNDS_RATE} ${SOUNDS_LANG} && \
rm svxlink-sounds-*
-# Set up password less sudo for user svxlink
+# Set up password-less sudo for user svxlink
ADD sudoers-svxlink /etc/sudoers.d/svxlink
RUN chmod 0440 /etc/sudoers.d/svxlink
-ENV GIT_URL=https://github.com/sm0svx/svxlink.git \
- GIT_BRANCH=master \
- NUM_CORES=1
+ARG GIT_URL_DEFAULT="https://github.com/sm0svx/svxlink.git"
+ARG GIT_SSL_NO_VERIFY_DEFAULT="false"
+ARG GIT_BRANCH_DEFAULT="master"
+ARG NUM_CORES_DEFAULT="1"
+
+ENV GIT_URL=${GIT_URL_DEFAULT} \
+ GIT_SSL_NO_VERIFY=${GIT_SSL_NO_VERIFY_DEFAULT} \
+ GIT_BRANCH=${GIT_BRANCH_DEFAULT} \
+ NUM_CORES=${NUM_CORES_DEFAULT}
RUN useradd -s /bin/bash svxlink
ADD build-svxlink.sh /home/svxlink/
-RUN chown -R svxlink.svxlink /home/svxlink
+RUN chown -R svxlink:svxlink /home/svxlink
-ADD entrypoint.sh /
-ENTRYPOINT ["/entrypoint.sh"]
+WORKDIR /home/svxlink
+USER svxlink:svxlink
+ENTRYPOINT ["/bin/bash"]
diff --git a/docker/ubuntu-build/build-svxlink.sh b/docker/ubuntu-build/build-svxlink.sh
index 902993e19..a5cb4309a 100755
--- a/docker/ubuntu-build/build-svxlink.sh
+++ b/docker/ubuntu-build/build-svxlink.sh
@@ -1,25 +1,26 @@
-#!/bin/bash -xe
+#!/bin/bash -x
+
+set -euo pipefail
+
+GIT_BRANCH=${GIT_BRANCH:-master}
# Make sure that we are in the home directory
cd
# Clone or update the repo
if [[ ! -d svxlink ]]; then
- git clone $GIT_URL svxlink
+ git clone --branch=$GIT_BRANCH $GIT_URL svxlink
cd svxlink
else
cd svxlink
- git fetch
- git checkout master
- git reset --hard origin/master
-fi
-
-# Checkout the wanted branch
-if [ -n "$GIT_BRANCH" ]; then
- git checkout $GIT_BRANCH
+ if [[ -w . ]]; then
+ git fetch
+ git checkout $GIT_BRANCH
+ git reset --hard origin/$GIT_BRANCH
+ fi
fi
-# Find out how many cores we've got
+# How many cores to use during the build
num_cores=${NUM_CORES:-1}
# Create a build directory and build svxlink