diff --git a/.github/workflows/games.yml b/.github/workflows/games.yml index 8dd36f6..733d44a 100644 --- a/.github/workflows/games.yml +++ b/.github/workflows/games.yml @@ -9,8 +9,8 @@ on: paths: - games/** jobs: - push: - name: "games:${{ matrix.game }}" + pushAMD64: + name: "games_AMD64:${{ matrix.game }}" runs-on: ubuntu-latest strategy: fail-fast: false @@ -18,7 +18,7 @@ jobs: game: - altv - arma3 - - dayz + - dayz - mohaa - samp - source @@ -42,3 +42,33 @@ jobs: push: true tags: | ghcr.io/parkervcp/games:${{ matrix.game }} + pushAll: + name: "games_All:${{ matrix.game }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + game: + - minetest + steps: + - uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + with: + platforms: arm64,amd64 + - uses: docker/setup-buildx-action@v2 + with: + buildkitd-flags: --debug + - uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v4 + with: + context: ./games/${{ matrix.game }} + file: ./games/${{ matrix.game }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/games:${{ matrix.game }} diff --git a/README.md b/README.md index f5cf1f2..d845a0b 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,8 @@ is tagged correctly. * `ghcr.io/parkervcp/games:arma3` * [`dayz`](/games/dayz) * `ghcr.io/parkervcp/games:dayz` +* [`minetest`](/games/minetest) + * `ghcr.io/parkervcp/games:minetest` * [`mohaa`](games/mohaa) * `ghcr.io/pterodactyl/games:mohaa` * [`samp`](/games/samp) diff --git a/bot/red/Dockerfile b/bot/red/Dockerfile index b5aa6f3..30fc529 100644 --- a/bot/red/Dockerfile +++ b/bot/red/Dockerfile @@ -1,18 +1,50 @@ -FROM --platform=$TARGETOS/$TARGETARCH python:3.11-slim-bullseye +FROM --platform=$TARGETOS/$TARGETARCH python:3.11-slim -LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" -RUN mkdir -p /usr/share/man/man1 \ - && apt update \ - && apt -y install git ca-certificates dnsutils iproute2 wget curl xz-utils git openjdk-11-jre tini \ - zlib1g-dev libffi-dev git libmagickwand-dev unzip libaa1-dev build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev ffmpeg imagemagick \ - && pip install python-forecastio tweepy unidecode discord-text-sanitizer mcstatus bs4 sqlalchemy geocoder valve python-valve py-cpuinfo psutil \ - && useradd -m -d /home/container container \ - && mkdir -p /home/container/.config/Red-DiscordBot/ \ - && ln -s /home/container/.config/Red-DiscordBot/ /usr/local/share/Red-DiscordBot +RUN mkdir -p /usr/share/man/man1 +RUN apt update \ + && apt -y upgrade \ + && apt -y install \ + git \ + ca-certificates \ + dnsutils \ + iproute2 \ + wget \ + curl \ + xz-utils \ + openjdk-17-jre-headless \ + zlib1g-dev \ + libffi-dev \ + libmagickwand-dev \ + unzip \ + libaa1-dev \ + build-essential \ + tk-dev \ + libncurses5-dev \ + libncursesw5-dev \ + libreadline6-dev \ + libdb5.3-dev \ + libgdbm-dev \ + libsqlite3-dev \ + libssl-dev \ + libbz2-dev \ + libexpat1-dev \ + liblzma-dev \ + ffmpeg \ + imagemagick + +RUN pip install --upgrade pip +RUN pip install python-forecastio tweepy unidecode discord-text-sanitizer mcstatus bs4 sqlalchemy geocoder valve python-valve py-cpuinfo psutil + +RUN mkdir -p /home/container/.config/Red-DiscordBot/ +RUN ln -s /home/container/.config/Red-DiscordBot/ /usr/local/share/Red-DiscordBot + +## Setup user and working directory +RUN useradd -m -d /home/container -s /bin/bash container USER container -ENV USER=container HOME=/home/container +ENV USER=container HOME=/home/container WORKDIR /home/container COPY --chown=container:container ./entrypoint.sh /entrypoint.sh diff --git a/games/minetest/Dockerfile b/games/minetest/Dockerfile new file mode 100644 index 0000000..d822314 --- /dev/null +++ b/games/minetest/Dockerfile @@ -0,0 +1,16 @@ +FROM --platform=$TARGETOS/$TARGETARCH ubuntu:20.04 +ENV DEBIAN_FRONTEND noninteractive + +RUN apt update -y \ + && apt install -y curl ca-certificates openssl git tar gnupg2 sqlite3 fontconfig tzdata iproute2 libfreetype6 software-properties-common \ + && useradd -d /home/container -m container + +RUN add-apt-repository -y ppa:minetestdevs/stable +RUN apt update && apt -y install minetest + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] \ No newline at end of file diff --git a/games/minetest/entrypoint.sh b/games/minetest/entrypoint.sh new file mode 100644 index 0000000..399eb5a --- /dev/null +++ b/games/minetest/entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# 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 + +# Print minetest version +printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mminetest --version\n" +minetest --version + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} \ No newline at end of file