Skip to content

Commit

Permalink
add new container
Browse files Browse the repository at this point in the history
  • Loading branch information
SaintWish committed May 13, 2023
1 parent e7ab915 commit 804fb97
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/apps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
app:
- {name: "opus", platform: "linux/amd64,linux/arm64"}
- {name: "generic", platform: "linux/amd64,linux/arm64"}
- {name: "generic_prune", platform: "linux/amd64,linux/arm64"}
- {name: "netsdk", platform: "linux/amd64"}
steps:
- name: code checkout
Expand Down
20 changes: 20 additions & 0 deletions apps/generic_prune/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM debian:bookworm-slim

LABEL author="HexiaHost LLC." maintainer="[email protected]"

LABEL org.opencontainers.image.source="https://github.com/HexiaHost/yggdrasil"
LABEL org.opencontainers.image.licenses=MIT

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update -y \
&& apt-get install -y --no-install-recommends tzdata iproute2 curl ca-certificates openssl git \
&& useradd -d /home/container -m container \
&& rm -rf /var/lib/apt/lists/*

USER container
ENV HOME /home/container
WORKDIR /home/container

COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]
59 changes: 59 additions & 0 deletions apps/generic_prune/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#!/bin/bash

#
# Copyright (c) 2021 Matthew Penner
#
# 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.
#

# Wait for container to initialize
sleep 1

# 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

# Prune logs older than 7 days on startup if enabled.
if [ "${LOG_AUTOPRUNE}" = 1 ]; then
if [ -d "$LOG_DIR" ]; then
echo "AutoPruning logs older than 7 days..."
find "$LOG_DIR" -type f -name '*.log' -mtime +7 -exec rm {} \;
fi
if [ ! -d "$LOG_DIR" ]; then
echo "AutoPruning enabled but $LOG_DIR does not exist, skipping"
fi
fi

# 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' | eval echo "$(cat -)")

# Display the command we're running in the output, and then execute it with the env
# from the container itself.
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
# shellcheck disable=SC2086
exec env ${PARSED}

0 comments on commit 804fb97

Please sign in to comment.