add more images
This commit is contained in:
parent
3241a41ae6
commit
dbb5d933c5
180 changed files with 4993 additions and 999 deletions
40
voice/mumble/Dockerfile
Normal file
40
voice/mumble/Dockerfile
Normal file
|
@ -0,0 +1,40 @@
|
|||
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim AS builder
|
||||
|
||||
# Copy and run the build script
|
||||
COPY build.sh /build.sh
|
||||
RUN chmod +x /build.sh
|
||||
RUN cd / && ./build.sh
|
||||
|
||||
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
|
||||
|
||||
# Create necessary directories
|
||||
RUN mkdir -p /usr/local/bin /usr/local/share/mumble
|
||||
|
||||
# Copy the built Mumble server binary and the latest tag file and the build log from the builder stage
|
||||
COPY --from=builder /usr/src/mumble/git/build/mumble-server /usr/local/bin/mumble-server
|
||||
COPY --from=builder /usr/src/mumble/git/build/latest_tag.txt /usr/local/share/mumble/latest_tag.txt
|
||||
COPY --from=builder /usr/src/mumble/build.log /usr/local/share/mumble/build.log
|
||||
|
||||
# Install runtime dependencies
|
||||
RUN apt update \
|
||||
&& apt -y install curl tar tzdata file ca-certificates sqlite3 iproute2 tini \
|
||||
&& useradd -m -d /home/container container
|
||||
|
||||
# Needed packages to run the mumble server
|
||||
RUN apt -y install libqt5sql5 libqt5sql5-sqlite libavahi-compat-libdnssd-dev libqt5dbus5 libzeroc-ice-dev libprotobuf-dev qtbase5-dev qtbase5-dev-tools
|
||||
|
||||
# Set up user and working directory
|
||||
USER container
|
||||
ENV USER=container HOME=/home/container
|
||||
WORKDIR /home/container
|
||||
|
||||
# Set the stop signal
|
||||
STOPSIGNAL SIGINT
|
||||
|
||||
# Copy and set up the entrypoint script
|
||||
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
# Define entrypoint and command
|
||||
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
|
||||
CMD ["/entrypoint.sh"]
|
155
voice/mumble/build.sh
Normal file
155
voice/mumble/build.sh
Normal file
|
@ -0,0 +1,155 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Mumble compile script.
|
||||
# Runs on Debian 12
|
||||
|
||||
LOGFILE="/usr/src/mumble/build.log"
|
||||
|
||||
log() {
|
||||
echo "$(date +'%Y-%m-%d %H:%M:%S') - $1" | tee -a $LOGFILE
|
||||
}
|
||||
|
||||
install_dep(){
|
||||
log "Installing dependencies..."
|
||||
apt update && apt -y install \
|
||||
build-essential \
|
||||
cmake \
|
||||
pkg-config \
|
||||
qtbase5-dev \
|
||||
qtchooser \
|
||||
qt5-qmake \
|
||||
qtbase5-dev-tools \
|
||||
qttools5-dev \
|
||||
qttools5-dev-tools \
|
||||
libqt5svg5-dev \
|
||||
libboost-dev \
|
||||
libssl-dev \
|
||||
libprotobuf-dev \
|
||||
protobuf-compiler \
|
||||
libprotoc-dev \
|
||||
libcap-dev \
|
||||
libxi-dev \
|
||||
libasound2-dev \
|
||||
libogg-dev \
|
||||
libsndfile1-dev \
|
||||
libspeechd-dev \
|
||||
libavahi-compat-libdnssd-dev \
|
||||
libxcb-xinerama0 \
|
||||
libzeroc-ice-dev \
|
||||
libpoco-dev \
|
||||
jq \
|
||||
python3 \
|
||||
curl \
|
||||
git
|
||||
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "Failed to install dependencies"
|
||||
exit 1
|
||||
fi
|
||||
log "Dependencies installed successfully"
|
||||
}
|
||||
|
||||
# Function to install g++-multilib on amd64
|
||||
install_amd64_multilib() {
|
||||
apt -y install g++-multilib
|
||||
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "Failed to install amd multilib dependency"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "Multilib AMD64 installed successfully"
|
||||
}
|
||||
|
||||
# Function to install multilib support on arm64
|
||||
install_arm64_multilib() {
|
||||
apt -y install g++-multilib-x86-64-linux-gnu g++-aarch64-linux-gnu libc6-dev-armhf-cross
|
||||
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "Failed to install amd multilib dependency"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "Multilib ARM64 installed successfully"
|
||||
}
|
||||
|
||||
clone_mumble(){
|
||||
log "Cloning the Mumble repository..."
|
||||
|
||||
# Create the necessary directories
|
||||
mkdir -p /usr/src/mumble/git && cd /usr/src/mumble/git
|
||||
|
||||
# Fetch the latest release tag from the GitHub API
|
||||
LATEST_TAG=$(curl -s "https://api.github.com/repos/mumble-voip/mumble/releases/latest" | jq -r .tag_name)
|
||||
if [[ $? -ne 0 || -z "$LATEST_TAG" ]]; then
|
||||
log "Failed to fetch the latest release tag"
|
||||
exit 1
|
||||
fi
|
||||
echo "The latest tag is: $LATEST_TAG" | tee -a $LOGFILE
|
||||
|
||||
# Clone the repository
|
||||
echo "Running: git clone --branch \"$LATEST_TAG\" https://github.com/mumble-voip/mumble.git ."
|
||||
git clone --branch "$LATEST_TAG" https://github.com/mumble-voip/mumble.git .
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "Failed to clone the repository"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Clone the submodules
|
||||
git submodule update --init --recursive
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "Failed to update submodules"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create and navigate to the build directory
|
||||
mkdir -p build && cd build
|
||||
|
||||
echo "$LATEST_TAG" > latest_tag.txt
|
||||
|
||||
# Run cmake with the specified options
|
||||
cmake -Dbundled-opus=OFF -Dclient=OFF -Dstatic=ON -DCMAKE_BUILD_TYPE=Release ..
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "CMake configuration failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "Repository cloned and configured successfully"
|
||||
}
|
||||
|
||||
build_mumble(){
|
||||
log "Building Mumble server..."
|
||||
|
||||
cd /usr/src/mumble/git/build
|
||||
|
||||
echo "Using $(nproc) threads to build Mumble server" | tee -a $LOGFILE
|
||||
cmake --build . -j $(nproc)
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "Build failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ls -la | tee -a $LOGFILE
|
||||
log "Build completed successfully"
|
||||
}
|
||||
|
||||
# Install normal deps
|
||||
install_dep
|
||||
|
||||
# Detect the architecture
|
||||
ARCH=$(dpkg --print-architecture)
|
||||
|
||||
# Install ARCH specific deps
|
||||
if [ "$ARCH" = "amd64" ]; then
|
||||
echo "Detected architecture: amd64"
|
||||
install_amd64_multilib
|
||||
elif [ "$ARCH" = "arm64" ]; then
|
||||
echo "Detected architecture: arm64"
|
||||
install_arm64_multilib
|
||||
else
|
||||
echo "Unsupported architecture: $ARCH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
clone_mumble
|
||||
build_mumble
|
17
voice/mumble/entrypoint.sh
Normal file
17
voice/mumble/entrypoint.sh
Normal file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
cd /home/container
|
||||
|
||||
# Make internal Docker IP address available to processes.
|
||||
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||
export INTERNAL_IP
|
||||
|
||||
# Print the Muble server version
|
||||
echo -e "Mumble release version:"
|
||||
cat /usr/local/share/mumble/latest_tag.txt
|
||||
|
||||
# Replace Startup Variables
|
||||
MODIFIED_STARTUP=$(echo -e $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g'))
|
||||
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
|
||||
|
||||
# Run the Server
|
||||
eval ${MODIFIED_STARTUP}
|
56
voice/teaspeak/Dockerfile
Normal file
56
voice/teaspeak/Dockerfile
Normal file
|
@ -0,0 +1,56 @@
|
|||
#
|
||||
# Copyright (c) 2021 Torsten Widmann
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
#
|
||||
|
||||
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
|
||||
|
||||
LABEL author="Torsten Widmann" maintainer="info@goover.de"
|
||||
|
||||
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
|
||||
LABEL org.opencontainers.image.licenses=MIT
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
## update base packages
|
||||
RUN apt update \
|
||||
&& apt upgrade -y
|
||||
|
||||
## install dependencies
|
||||
RUN apt install -y ffmpeg curl python3 iproute2 libjemalloc2 tini
|
||||
|
||||
# Install latest youtube-dl
|
||||
RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/youtube-dl
|
||||
RUN chmod a+rx /usr/local/bin/youtube-dl
|
||||
|
||||
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1000
|
||||
|
||||
RUN useradd -m -d /home/container container
|
||||
|
||||
USER container
|
||||
ENV USER=container HOME=/home/container
|
||||
WORKDIR /home/container
|
||||
|
||||
STOPSIGNAL SIGINT
|
||||
|
||||
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
|
||||
CMD ["/entrypoint.sh"]
|
24
voice/teaspeak/entrypoint.sh
Normal file
24
voice/teaspeak/entrypoint.sh
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Default the TZ environment variable to UTC.
|
||||
TZ=${TZ:-UTC}
|
||||
export TZ
|
||||
|
||||
# Set environment variable that holds the Internal Docker IP
|
||||
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
|
||||
export INTERNAL_IP
|
||||
|
||||
# Switch to the container's working directory
|
||||
cd /home/container || exit 1
|
||||
|
||||
echo "installed youtube-dl Version:"
|
||||
/usr/local/bin/youtube-dl --version
|
||||
|
||||
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
|
||||
# variable format of "${VARIABLE}" before evaluating the string and automatically
|
||||
# replacing the values.
|
||||
PARSED=$(echo "$STARTUP" | sed -e 's/{{/${/g' -e 's/}}/}/g')
|
||||
|
||||
# Display the command we're running in the output, and then execute it with eval
|
||||
printf "\033[1m\033[33mcontainer@pelican~ \033[0m"
|
||||
echo "$PARSED"
|
||||
# shellcheck disable=SC2086
|
||||
eval "$PARSED"
|
Loading…
Add table
Add a link
Reference in a new issue