Merge branch 'master' into mohaa

This commit is contained in:
Manuel Dielacher
2021-12-15 20:21:25 +01:00
committed by GitHub
45 changed files with 576 additions and 253 deletions

10
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,10 @@
### All Submissions:
* [ ] Have you ensured there aren't other open [Pull Requests](../pulls) for the same update or change?
* [ ] Have you created a new branch for your changes and PR from that branch and not from your master branch?
* [ ] Have you added an explanation of what your changes do and why you'd like us to include them?
### New Image Submissions:
1. [ ] Have you added your image to the [Github workflows](https://github.com/parkervcp/yolks/tree/master/.github/workflows)?
2. [ ] Have you updated the README list to contain your new image?

View File

@@ -1,5 +1,6 @@
name: build oses name: build oses
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:

View File

@@ -1,5 +1,6 @@
name: build bot name: build bot
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
@@ -8,14 +9,13 @@ on:
paths: paths:
- bot/** - bot/**
jobs: jobs:
push: pushArm:
name: "yolks:bot_${{ matrix.tag }}" name: "yolks:bot_${{ matrix.tag }}"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
tag: tag:
- bastion
- parkertron - parkertron
- red - red
- sinusbot - sinusbot
@@ -23,7 +23,52 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1 - uses: docker/setup-buildx-action@v1
with: with:
version: "v0.5.1" version: "v0.7.0"
buildkitd-flags: --debug
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: arm64,amd64
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
with:
context: ./bot/${{ matrix.tag }}
file: ./bot/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
push: true
tags: |
ghcr.io/parkervcp/yolks:bot_${{ matrix.tag }}
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
pushAmd:
name: "yolks:bot_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- bastion
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
with:
version: "v0.7.0"
buildkitd-flags: --debug buildkitd-flags: --debug
- uses: docker/login-action@v1 - uses: docker/login-action@v1
with: with:

View File

@@ -1,5 +1,6 @@
name: build cassandra name: build cassandra
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:

View File

@@ -1,7 +1,6 @@
name: build dotnet name: build dotnet
on: on:
# Allows you to run this workflow manually from the Actions tab workflow_dispatch:
# workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
@@ -19,7 +18,8 @@ jobs:
tag: tag:
- 2.1 - 2.1
- 3.1 - 3.1
- 5.0 - 5
- 6
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1 - uses: docker/setup-buildx-action@v1

View File

@@ -1,5 +1,6 @@
name: build erlang name: build erlang
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:

View File

@@ -1,5 +1,6 @@
name: build games name: build games
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
@@ -16,7 +17,6 @@ jobs:
matrix: matrix:
game: game:
- arma3 - arma3
- fivem
- source - source
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
@@ -36,4 +36,4 @@ jobs:
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/games:${{ matrix.game }} ghcr.io/parkervcp/games:${{ matrix.game }}

View File

@@ -1,5 +1,6 @@
name: build go name: build go
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
@@ -36,4 +37,4 @@ jobs:
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/yolks:go_${{ matrix.tag }} ghcr.io/parkervcp/yolks:go_${{ matrix.tag }}

View File

@@ -1,5 +1,6 @@
name: build installers name: build installers
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
@@ -35,4 +36,4 @@ jobs:
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/installers:${{ matrix.tag }} ghcr.io/parkervcp/installers:${{ matrix.tag }}

View File

@@ -1,5 +1,6 @@
name: build java name: build java
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
@@ -16,11 +17,12 @@ jobs:
matrix: matrix:
tag: tag:
- 8 - 8
- 8j9 # - 8j9
- 11 - 11
- 11j9 # - 11j9
- 16 - 16
- 16j9 # - 16j9
- 17
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: docker/setup-qemu-action@v1 - uses: docker/setup-qemu-action@v1
@@ -40,4 +42,4 @@ jobs:
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/yolks:java_${{ matrix.tag }} ghcr.io/parkervcp/yolks:java_${{ matrix.tag }}

38
.github/workflows/mono.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: build mono
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- mono/**
jobs:
push:
name: "yolks:mono_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- latest
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
with:
context: ./mono
file: ./mono/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/parkervcp/yolks:mono_${{ matrix.tag }}

View File

@@ -1,12 +1,13 @@
name: build nodejs name: build nodejs
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
branches: branches:
- master - master
paths: paths:
- nodejs/* - nodejs/**
jobs: jobs:
push: push:
name: "yolks:nodejs_${{ matrix.tag }}" name: "yolks:nodejs_${{ matrix.tag }}"
@@ -17,10 +18,12 @@ jobs:
tag: tag:
- 12 - 12
- 14 - 14
- 15
- 16 - 16
- 17
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1 - uses: docker/setup-buildx-action@v1
with: with:
version: "v0.5.1" version: "v0.5.1"
@@ -34,7 +37,7 @@ jobs:
with: with:
context: ./nodejs context: ./nodejs
file: ./nodejs/${{ matrix.tag }}/Dockerfile file: ./nodejs/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/yolks:nodejs_${{ matrix.tag }} ghcr.io/parkervcp/yolks:nodejs_${{ matrix.tag }}

View File

@@ -1,5 +1,6 @@
name: build python name: build python
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
@@ -15,12 +16,15 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
tag: tag:
- 2.7 - '2.7'
- 3.7 - '3.7'
- 3.8 - '3.8'
- 3.9 - '3.9'
- '3.10'
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1 - uses: docker/setup-buildx-action@v1
with: with:
version: "v0.5.1" version: "v0.5.1"
@@ -34,7 +38,7 @@ jobs:
with: with:
context: ./python context: ./python
file: ./python/${{ matrix.tag }}/Dockerfile file: ./python/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/yolks:python_${{ matrix.tag }} ghcr.io/parkervcp/yolks:python_${{ matrix.tag }}

View File

@@ -1,6 +1,6 @@
name: build voice name: build voice
on: on:
# Allows you to run this workflow manually from the Actions tab workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:

38
.github/workflows/wine.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: build wine
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- wine/**
jobs:
push:
name: "yolks:wine_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- latest
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
with:
context: ./wine
file: ./wine/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/parkervcp/yolks:wine_${{ matrix.tag }}

172
README.md
View File

@@ -18,98 +18,134 @@ example of this would be something like Java or Python which are used for runnin
All of these images are available for `linux/amd64` and `linux/arm64` versions, unless otherwise specified, to use All of these images are available for `linux/amd64` and `linux/arm64` versions, unless otherwise specified, to use
these images on an arm system, no modification to them or the tag is needed, they should just work. these images on an arm system, no modification to them or the tag is needed, they should just work.
### Contributing ## Contributing
When adding a new version to an existing image, such as `java v42`, you'd add it within a child folder of `java`, so When adding a new version to an existing image, such as `java v42`, you'd add it within a child folder of `java`, so
`java/42/Dockerfile` for example. Please also update the correct `.github/workflows` file to ensure that this new version `java/42/Dockerfile` for example. Please also update the correct `.github/workflows` file to ensure that this new version
is tagged correctly. is tagged correctly.
## Available Images ## Available Images
### [Oses](/oses) ### [Oses](/oses)
* [alpine](/oses/alpine) * [alpine](/oses/alpine)
* `ghcr.io/parkervcp/yolks:alpine` * `ghcr.io/parkervcp/yolks:alpine`
* [debian](/oses/debian) * [debian](/oses/debian)
* `ghcr.io/parkervcp/yolks:debian` * `ghcr.io/parkervcp/yolks:debian`
* [ubuntu](/oses/ubuntu) * [ubuntu](/oses/ubuntu)
* `ghcr.io/parkervcp/yolks:ubuntu` * `ghcr.io/parkervcp/yolks:ubuntu`
### [Bot](/bot)
* [`bastion`](/bot/bastion) ### [Bot](/bot)
* `ghcr.io/parkervcp/yolks:bot_bastion`
* [`parkertron`](/bot/parkertron) * [`bastion`](/bot/bastion)
* `ghcr.io/parkervcp/yolks:bot_parkertron` * `ghcr.io/parkervcp/yolks:bot_bastion`
* [`redbot`](/bot/red) * [`parkertron`](/bot/parkertron)
* `ghcr.io/parkervcp/yolks:bot_red` * `ghcr.io/parkervcp/yolks:bot_parkertron`
* [`sinusbot`](/bot/sinusbot) * [`redbot`](/bot/red)
* `ghcr.io/parkervcp/yolks:bot_sinusbot` * `ghcr.io/parkervcp/yolks:bot_red`
* [`sinusbot`](/bot/sinusbot)
* `ghcr.io/parkervcp/yolks:bot_sinusbot`
### [Cassandra](/cassandra) ### [Cassandra](/cassandra)
* [`cassandra_java8_python27`](/cassandra/cassandra_java8_python2)
* `ghcr.io/parkervcp/yolks:cassandra_java11_python2` * [`cassandra_java8_python27`](/cassandra/cassandra_java8_python2)
* [`cassandra_java11_python3`](/cassandra/cassandra_java11_python3) * `ghcr.io/parkervcp/yolks:cassandra_java11_python2`
* `ghcr.io/parkervcp/yolks:cassandra_java11_python3` * [`cassandra_java11_python3`](/cassandra/cassandra_java11_python3)
* `ghcr.io/parkervcp/yolks:cassandra_java11_python3`
### [dotNet](/dotnet) ### [dotNet](/dotnet)
* [`dotnet2.1`](/dotnet/2.1)
* `ghcr.io/parkervcp/yolks:dotnet_2.1` * [`dotnet2.1`](/dotnet/2.1)
* [`dotnet3.1`](/dotnet/3.1) * `ghcr.io/parkervcp/yolks:dotnet_2.1`
* `ghcr.io/parkervcp/yolks:dotnet_3.1` * [`dotnet3.1`](/dotnet/3.1)
* [`dotnet5.0`](/dotnet/5.0) * `ghcr.io/parkervcp/yolks:dotnet_3.1`
* `ghcr.io/parkervcp/yolks:dotnet_5.0` * [`dotnet5.0`](/dotnet/5)
* `ghcr.io/parkervcp/yolks:dotnet_5`
* [`dotnet6.0`](/dotnet/6)
* `ghcr.io/parkervcp/yolks:dotnet_6`
### [Erlang](/erlang) ### [Erlang](/erlang)
* [`erlang22`](/erlang/22)
* `ghcr.io/parkervcp/yolks:erlang_22` * [`erlang22`](/erlang/22)
* [`erlang23`](/erlang/23) * `ghcr.io/parkervcp/yolks:erlang_22`
* `ghcr.io/parkervcp/yolks:erlang_23` * [`erlang23`](/erlang/23)
* [`erlang24`](/erlang/24) * `ghcr.io/parkervcp/yolks:erlang_23`
* `ghcr.io/parkervcp/yolks:erlang_24` * [`erlang24`](/erlang/24)
### [Games](/games) * `ghcr.io/parkervcp/yolks:erlang_24`
* [`arma3`](/games/arma3)
* `ghcr.io/parkervcp/games:arma3` ### [Games](/games)
* [`fivem`](/games/fivem)
* `ghcr.io/parkervcp/games:fivem` * [`arma3`](/games/arma3)
* [`source`](/games/source) * `ghcr.io/parkervcp/games:arma3`
* `ghcr.io/parkervcp/games:source` * [`source`](/games/source)
* `ghcr.io/parkervcp/games:source`
### [Golang](/go) ### [Golang](/go)
* [`go1.14`](/go/1.14)
* `ghcr.io/parkervcp/yolks:go_1.14` * [`go1.14`](/go/1.14)
* [`go1.15`](/go/1.15) * `ghcr.io/parkervcp/yolks:go_1.14`
* `ghcr.io/parkervcp/yolks:go_1.15` * [`go1.15`](/go/1.15)
* [`go1.16`](/go/1.16) * `ghcr.io/parkervcp/yolks:go_1.15`
* `ghcr.io/parkervcp/yolks:go_1.16` * [`go1.16`](/go/1.16)
* `ghcr.io/parkervcp/yolks:go_1.16`
### [Java](/java) ### [Java](/java)
* [`java7`](/java/7)
* `ghcr.io/parkervcp/yolks:java_7` * [`java7`](/java/7)
* [`java8`](/java/8) * `ghcr.io/parkervcp/yolks:java_7`
* `ghcr.io/parkervcp/yolks:java_8` * [`java8`](/java/8)
* [`java9`](/java/9) * `ghcr.io/parkervcp/yolks:java_8`
* `ghcr.io/parkervcp/yolks:java_9` * [`java9`](/java/9)
* [`java11`](/java/11) * `ghcr.io/parkervcp/yolks:java_9`
* `ghcr.io/parkervcp/yolks:java_11` * [`java11`](/java/11)
* [`java14`](/java/14) * `ghcr.io/parkervcp/yolks:java_11`
* `ghcr.io/parkervcp/yolks:java_14` * [`java14`](/java/14)
* [`java16`](/java/16) * `ghcr.io/parkervcp/yolks:java_14`
* `ghcr.io/parkervcp/yolks:java_16` * [`java16`](/java/16)
* `ghcr.io/parkervcp/yolks:java_16`
* [`java17`](/java/17)
* `ghcr.io/parkervcp/yolks:java_17`
### [Mono](/mono)
* [`mono_latest`](/mono/latest)
* `ghcr.io/parkervcp/yolks:mono_latest`
### [Nodejs](/nodejs) ### [Nodejs](/nodejs)
* [`node12`](/nodejs/12)
* `ghcr.io/parkervcp/yolks:nodejs_12` * [`node12`](/nodejs/12)
* [`node14`](/nodejs/14) * `ghcr.io/parkervcp/yolks:nodejs_12`
* `ghcr.io/parkervcp/yolks:nodejs_14` * [`node14`](/nodejs/14)
* [`node15`](/nodejs/15) * `ghcr.io/parkervcp/yolks:nodejs_14`
* `ghcr.io/parkervcp/yolks:nodejs_15` * [`node16`](/nodejs/16)
* [`node16`](/nodejs/16) * `ghcr.io/parkervcp/yolks:nodejs_16`
* `ghcr.io/parkervcp/yolks:nodejs_16` * [`node17`](/nodejs/17)
* `ghcr.io/parkervcp/yolks:nodejs_17`
### [Python](/python) ### [Python](/python)
* [`python3.7`](/python/3.7)
* `ghcr.io/parkervcp/yolks:python_3.7` * [`python3.7`](/python/3.7)
* [`python3.8`](/python/3.8) * `ghcr.io/parkervcp/yolks:python_3.7`
* `ghcr.io/parkervcp/yolks:python_3.8` * [`python3.8`](/python/3.8)
* [`python3.9`](/python/3.9) * `ghcr.io/parkervcp/yolks:python_3.8`
* `ghcr.io/parkervcp/yolks:python_3.9` * [`python3.9`](/python/3.9)
* `ghcr.io/parkervcp/yolks:python_3.9`
* [`python3.10`](/python/3.10)
* `ghcr.io/parkervcp/yolks:python_3.10`
### [Voice](/voice) ### [Voice](/voice)
* [`TeaSpeak`](/teaspeak)
* `ghcr.io/parkervcp/yolks:voice_teaspeak` * [`TeaSpeak`](/teaspeak)
* `ghcr.io/parkervcp/yolks:voice_teaspeak`
### [Wine](/wine)
* [`Wine`](/wine)
* `ghcr.io/parkervcp/yolks:wine_latest`
### [Installation Images](/installers) ### [Installation Images](/installers)
* [`alpine-install`](/installers/alpine) * [`alpine-install`](/installers/alpine)
* `ghcr.io/parkervcp/installers:alpine` * `ghcr.io/parkervcp/installers:alpine`
* [`debian-install`](/installers/debian) * [`debian-install`](/installers/debian)
* `ghcr.io/parkervcp/installers:debian` * `ghcr.io/parkervcp/installers:debian`

21
dotnet/6/Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
FROM --platform=$BUILDPLATFORM ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive
RUN apt update -y \
&& apt upgrade -y \
&& apt install -y apt-transport-https wget iproute2 \
&& wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& rm packages-microsoft-prod.deb \
&& apt update -y \
&& apt install -y aspnetcore-runtime-6.0 libgdiplus
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -46,7 +46,7 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id]
# Check if updating server or mod # Check if updating server or mod
if [[ $1 == 0 ]]; then # Server if [[ $1 == 0 ]]; then # Server
${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +force_install_dir /home/container +app_update $2 $extraFlags $validateServer +quit | tee -a "${STEAMCMD_LOG}" ${STEAMCMD_DIR}/steamcmd.sh +force_install_dir /home/container "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +app_update $2 $extraFlags $validateServer +quit | tee -a "${STEAMCMD_LOG}"
else # Mod else # Mod
${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +workshop_download_item $GAME_ID $2 +quit | tee -a "${STEAMCMD_LOG}" ${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +workshop_download_item $GAME_ID $2 +quit | tee -a "${STEAMCMD_LOG}"
fi fi

View File

@@ -1,38 +0,0 @@
#
# 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.
#
FROM --platform=$BUILDPLATFORM alpine:latest
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates c-ares icu-libs libssl1.1 libunwind musl musl-dbg tzdata zlib \
&& adduser -D -h /home/container container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD [ "/bin/ash", "/entrypoint.sh" ]

View File

@@ -1,45 +0,0 @@
#!/bin/ash
#
# 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.
#
# 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;exit}')
export INTERNAL_IP
# Switch to the container's working directory
cd /home/container || exit 1
# 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}

View File

@@ -30,10 +30,16 @@ LABEL org.opencontainers.image.licenses=MIT
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 \ RUN dpkg --add-architecture i386 \
&& apt update \ && apt update \
&& apt upgrade -y \ && apt upgrade -y \
&& apt install -y tar curl gcc g++ lib32gcc-s1 libgcc1 libcurl4-gnutls-dev:i386 libssl1.1:i386 libcurl4:i386 lib32tinfo6 libtinfo6:i386 lib32z1 lib32stdc++6 libncurses5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 iproute2 gdb libsdl1.2debian libfontconfig1 telnet net-tools netcat tzdata \ && apt install -y tar curl gcc g++ lib32gcc-s1 libgcc1 libcurl4-gnutls-dev:i386 libssl1.1:i386 libcurl4:i386 lib32tinfo6 libtinfo6:i386 lib32z1 lib32stdc++6 libncurses5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 iproute2 gdb libsdl1.2debian libfontconfig1 telnet net-tools netcat tzdata \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
## install rcon
RUN cd /tmp/ \
&& curl -sSL https://github.com/gorcon/rcon-cli/releases/download/v0.10.1/rcon-0.10.1-amd64_linux.tar.gz > rcon.tar.gz \
&& tar xvf rcon.tar.gz \
&& mv rcon-0.10.1-amd64_linux/rcon /usr/local/bin/
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container

View File

@@ -22,6 +22,9 @@
# SOFTWARE. # SOFTWARE.
# #
# Wait for the container to fully initialize
sleep 1
# Default the TZ environment variable to UTC. # Default the TZ environment variable to UTC.
TZ=${TZ:-UTC} TZ=${TZ:-UTC}
export TZ export TZ
@@ -33,10 +36,6 @@ export INTERNAL_IP
# Switch to the container's working directory # Switch to the container's working directory
cd /home/container || exit 1 cd /home/container || exit 1
# 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 -)")
## just in case someone removed the defaults. ## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then if [ "${STEAM_USER}" == "" ]; then
@@ -53,7 +52,7 @@ fi
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server # Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then if [ ! -z ${SRCDS_APPID} ]; then
./steamcmd/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir /home/container +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || printf %s "validate" ) +quit ./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || printf %s "validate" ) +quit
else else
echo -e "No appid set. Starting Server" echo -e "No appid set. Starting Server"
fi fi
@@ -62,8 +61,9 @@ else
echo -e "Not updating game server as auto update was set to 0. Starting Server" echo -e "Not updating game server as auto update was set to 0. Starting Server"
fi fi
# Display the command we're running in the output, and then execute it with the env # Replace Startup Variables
# from the container itself. MODIFIED_STARTUP=$(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED" echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# shellcheck disable=SC2086
exec env ${PARSED} # Run the Server
eval ${MODIFIED_STARTUP}

View File

@@ -32,4 +32,4 @@ ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 \ RUN dpkg --add-architecture i386 \
&& apt update \ && apt update \
&& apt upgrade -y \ && apt upgrade -y \
&& apt -y --no-install-recommends install ca-certificates curl lib32gcc-s1 libsdl2-2.0-0:i386 git && apt -y --no-install-recommends install ca-certificates curl lib32gcc-s1 libsdl2-2.0-0:i386 git unzip zip tar jq

View File

@@ -1,13 +1,13 @@
FROM --platform=$BUILDPLATFORM openjdk:11-slim FROM --platform=$TARGETOS/$TARGETARCH openjdk:11-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT LABEL org.opencontainers.image.licenses=MIT
RUN apt-get update -y \ RUN apt update -y \
&& apt-get install -y curl ca-certificates openssl git tar sqlite fontconfig tzdata iproute2 \ && apt install -y curl ca-certificates openssl git tar sqlite3 fontconfig tzdata iproute2 libfreetype6 \
&& useradd -d /home/container -m container && useradd -d /home/container -m container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container

View File

@@ -1,10 +1,10 @@
FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk11-openj9:debianslim FROM --platform=$TARGETOS/$TARGETARCH adoptopenjdk/openjdk11-openj9:debianslim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt-get update -y \ RUN apt update -y \
&& apt-get install -y curl ca-certificates openssl git tar sqlite fontconfig tzdata iproute2 \ && apt install -y curl ca-certificates openssl git tar sqlite3 fontconfig tzdata iproute2 libfreetype6 \
&& useradd -d /home/container -m container && useradd -d /home/container -m container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container

View File

@@ -1,13 +1,13 @@
FROM --platform=$BUILDPLATFORM openjdk:16-slim FROM --platform=$TARGETOS/$TARGETARCH openjdk:16-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT LABEL org.opencontainers.image.licenses=MIT
RUN apt-get update -y \ RUN apt update -y \
&& apt-get install -y curl ca-certificates openssl git tar sqlite fontconfig tzdata iproute2 \ && apt install -y curl ca-certificates openssl git tar sqlite3 fontconfig tzdata iproute2 libfreetype6 \
&& useradd -d /home/container -m container && useradd -d /home/container -m container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container

View File

@@ -1,10 +1,10 @@
FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk16-openj9:debianslim FROM --platform=$TARGETOS/$TARGETARCH adoptopenjdk/openjdk16-openj9:debianslim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt-get update -y \ RUN apt update -y \
&& apt-get install -y curl ca-certificates openssl git tar sqlite fontconfig tzdata iproute2 \ && apt install -y curl ca-certificates openssl git tar sqlite3 fontconfig tzdata iproute2 libfreetype6 \
&& useradd -d /home/container -m container && useradd -d /home/container -m container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container

17
java/17/Dockerfile Normal file
View File

@@ -0,0 +1,17 @@
FROM --platform=$TARGETOS/$TARGETARCH openjdk:17-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apt update -y \
&& apt install -y curl ca-certificates openssl git tar sqlite3 fontconfig tzdata iproute2 libfreetype6 \
&& useradd -d /home/container -m container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -1,13 +1,13 @@
FROM --platform=$BUILDPLATFORM openjdk:8-slim-buster FROM --platform=$TARGETOS/$TARGETARCH openjdk:8-slim-buster
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT LABEL org.opencontainers.image.licenses=MIT
RUN apt-get update -y \ RUN apt update -y \
&& apt-get install -y curl ca-certificates openssl git tar sqlite fontconfig tzdata iproute2 \ && apt install -y curl ca-certificates openssl git tar sqlite3 fontconfig tzdata iproute2 libfreetype6 \
&& useradd -d /home/container -m container && useradd -d /home/container -m container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container

View File

@@ -1,10 +1,10 @@
FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk8-openj9:debianslim FROM --platform=$TARGETOS/$TARGETARCH adoptopenjdk/openjdk8-openj9:debianslim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt-get update -y \ RUN apt update -y \
&& apt-get install -y curl ca-certificates openssl git tar sqlite fontconfig tzdata iproute2 \ && apt install -y curl ca-certificates openssl git tar sqlite fontconfig tzdata iproute2 libfreetype6 \
&& useradd -d /home/container -m container && useradd -d /home/container -m container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container

12
mono/entrypoint.sh Normal file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# Replace Startup Variables
MODIFIED_STARTUP="eval $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')"
echo ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
${MODIFIED_STARTUP}

22
mono/latest/Dockerfile Normal file
View File

@@ -0,0 +1,22 @@
# ----------------------------------
# Mono Latest Image
# Minimum Panel Version: 1.2.x
# ----------------------------------
FROM ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="support@goover.de"
RUN apt update \
&& apt -y upgrade
RUN apt install -y fontconfig dirmngr
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
RUN sh -c 'echo "deb https://download.mono-project.com/repo/debian stable-buster main" > /etc/apt/sources.list.d/mono-official-stable.list'
RUN apt update
RUN apt install mono-complete -y
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

View File

@@ -1,9 +1,10 @@
FROM node:12-buster-slim FROM --platform=$TARGETOS/$TARGETARCH node:12-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip \ && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool \
&& npm -g install npm@latest \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
USER container USER container
@@ -11,4 +12,4 @@ ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"] CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -1,9 +1,10 @@
FROM node:14-buster-slim FROM --platform=$TARGETOS/$TARGETARCH node:14-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip \ && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool \
&& npm -g install npm@latest \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
USER container USER container
@@ -11,4 +12,4 @@ ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"] CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -1,9 +1,10 @@
FROM node:16-buster-slim FROM --platform=$TARGETOS/$TARGETARCH node:16-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip \ && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool \
&& npm -g install npm@latest \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
USER container USER container
@@ -11,4 +12,4 @@ ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"] CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -1,9 +1,10 @@
FROM node:15-buster-slim FROM --platform=$TARGETOS/$TARGETARCH node:17-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip \ && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool \
&& npm -g install npm@latest \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
USER container USER container
@@ -11,4 +12,4 @@ ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"] CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -1,30 +1,33 @@
FROM debian:buster-slim FROM debian:bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
## add container user ENV DEBIAN_FRONTEND noninteractive
RUN useradd -m -d /home/container -s /bin/bash container
RUN ln -s /home/container/ /nonexistent RUN useradd -m -d /home/container -s /bin/bash container
ENV USER=container HOME=/home/container RUN ln -s /home/container/ /nonexistent
## update base packages ENV USER=container HOME=/home/container
RUN apt update \
&& apt upgrade -y
## install dependencies ## Update base packages
RUN apt install -y gcc g++ libgcc1 lib32gcc1 libc++-dev gdb libc6 git wget curl tar zip unzip binutils xz-utils liblzo2-2 cabextract iproute2 net-tools netcat telnet libatomic1 libsdl1.2debian libsdl2-2.0-0 \ RUN apt update \
libfontconfig libicu63 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev libduktape203 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates tzdata \ && apt upgrade -y
liblua5.3 libz-dev rapidjson-dev lib32stdc++6 libstdc++5:i386
## configure locale ## Install dependencies
RUN update-locale lang=en_US.UTF-8 \ RUN apt install -y gcc g++ libgcc1 lib32gcc-s1 libc++-dev gdb libc6 git wget curl tar zip unzip binutils xz-utils liblzo2-2 cabextract iproute2 net-tools netcat telnet libatomic1 libsdl1.2debian libsdl2-2.0-0 \
&& dpkg-reconfigure --frontend noninteractive locales libfontconfig libicu67 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadbclient-dev-compat libduktape205 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates \
liblua5.4-0 libz-dev rapidjson-dev tzdata libevent-dev lib32stdc++6 libstdc++5:i386
WORKDIR /home/container ## Configure locale
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
COPY ./entrypoint.sh /entrypoint.sh WORKDIR /home/container
CMD ["/bin/bash", "/entrypoint.sh"]
COPY ./entrypoint.sh /entrypoint.sh
CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -14,11 +14,13 @@ RUN apt update \
## install dependencies ## install dependencies
RUN apt install -y gcc g++ libgcc1 lib32gcc1 libc++-dev gdb libc6 git wget curl tar zip unzip binutils xz-utils liblzo2-2 cabextract iproute2 net-tools netcat telnet libatomic1 libsdl1.2debian libsdl2-2.0-0 \ RUN apt install -y gcc g++ libgcc1 lib32gcc1 libc++-dev gdb libc6 git wget curl tar zip unzip binutils xz-utils liblzo2-2 cabextract iproute2 net-tools netcat telnet libatomic1 libsdl1.2debian libsdl2-2.0-0 \
libfontconfig libicu60 libiculx60 icu-devtools libunwind8 libssl1.0.0 libssl1.0-dev sqlite3 libsqlite3-dev libmariadbclient-dev libduktape202 libzip4 locales ffmpeg apt-transport-https init-system-helpers \ libfontconfig libicu60 libiculx60 icu-devtools libunwind8 libssl1.0.0 libssl1.0-dev sqlite3 libsqlite3-dev libmariadbclient-dev libduktape202 libzip4 locales ffmpeg apt-transport-https init-system-helpers \
libcurl3-gnutls libjsoncpp1 libleveldb1v5 liblua5.1-0 libluajit-5.1-2 libsqlite3-0 libfluidsynth1 bzip2 zlib1g libcurl3-gnutls libjsoncpp1 libleveldb1v5 liblua5.1-0 libluajit-5.1-2 libsqlite3-0 libfluidsynth1 bzip2 zlib1g libevent-dev
## configure locale ## configure locale
RUN update-locale lang=en_US.UTF-8 \ RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales && dpkg-reconfigure --frontend noninteractive locales
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"] CMD ["/bin/bash", "/entrypoint.sh"]

View File

@@ -1,4 +1,4 @@
FROM python:2.7-slim FROM --platform=$TARGETOS/$TARGETARCH python:2.7-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

14
python/3.10/Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
FROM --platform=$TARGETOS/$TARGETARCH python:3.10-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install git gcc g++ ca-certificates dnsutils curl iproute2 ffmpeg procps \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -1,4 +1,4 @@
FROM python:3.7-slim FROM --platform=$TARGETOS/$TARGETARCH python:3.7-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

View File

@@ -1,4 +1,4 @@
FROM python:3.8-slim FROM --platform=$TARGETOS/$TARGETARCH python:3.8-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

View File

@@ -1,4 +1,4 @@
FROM python:3.9-slim FROM --platform=$TARGETOS/$TARGETARCH python:3.9-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

84
wine/entrypoint.sh Normal file
View File

@@ -0,0 +1,84 @@
#!/bin/bash
cd /home/container
# Information output
echo "Running on Debian $(cat /etc/debian_version)"
echo "Current timezone: $(cat /etc/timezone)"
wine --version
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then
echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n"
STEAM_USER=anonymous
STEAM_PASS=""
STEAM_AUTH=""
else
echo -e "user set to ${STEAM_USER}"
fi
## if auto_update is not set or to 1 update
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then
./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ ! -z ${SRCDS_BETAID} ]] && printf %s "-beta ${SRCDS_BETAID}" ) $( [[ ! -z ${SRCDS_BETAPASS} ]] && printf %s "-betapassword ${SRCDS_BETAPASS}" ) $( [[ ! -z ${HLDS_GAME} ]] && printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ ! -z ${VALIDATE} ]] && printf %s "validate" ) +quit
else
echo -e "No appid set. Starting Server"
fi
else
echo -e "Not updating game server as auto update was set to 0. Starting Server"
fi
if [[ $XVFB == 1 ]]; then
Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} &
fi
# Install necessary to run packages
echo "First launch will throw some errors. Ignore them"
mkdir -p $WINEPREFIX
# Check if wine-gecko required and install it if so
if [[ $WINETRICKS_RUN =~ gecko ]]; then
echo "Installing Gecko"
WINETRICKS_RUN=${WINETRICKS_RUN/gecko}
if [ ! -f "$WINEPREFIX/gecko_x86.msi" ]; then
wget -q -O $WINEPREFIX/gecko_x86.msi http://dl.winehq.org/wine/wine-gecko/2.47.2/wine_gecko-2.47.2-x86.msi
fi
if [ ! -f "$WINEPREFIX/gecko_x86_64.msi" ]; then
wget -q -O $WINEPREFIX/gecko_x86_64.msi http://dl.winehq.org/wine/wine-gecko/2.47.2/wine_gecko-2.47.2-x86_64.msi
fi
wine msiexec /i $WINEPREFIX/gecko_x86.msi /qn /quiet /norestart /log $WINEPREFIX/gecko_x86_install.log
wine msiexec /i $WINEPREFIX/gecko_x86_64.msi /qn /quiet /norestart /log $WINEPREFIX/gecko_x86_64_install.log
fi
# Check if wine-mono required and install it if so
if [[ $WINETRICKS_RUN =~ mono ]]; then
echo "Installing mono"
WINETRICKS_RUN=${WINETRICKS_RUN/mono}
if [ ! -f "$WINEPREFIX/mono.msi" ]; then
wget -q -O $WINEPREFIX/mono.msi http://dl.winehq.org/wine/wine-mono/6.4.0/wine-mono-6.4.0-x86.msi
fi
wine msiexec /i $WINEPREFIX/mono.msi /qn /quiet /norestart /log $WINEPREFIX/mono_install.log
fi
# List and install other packages
for trick in $WINETRICKS_RUN; do
echo "Installing $trick"
winetricks -q $trick
done
# Replace Startup Variables
MODIFIED_STARTUP=$(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

40
wine/latest/Dockerfile Normal file
View File

@@ -0,0 +1,40 @@
# ----------------------------------
# Generic Wine 6 image
# ----------------------------------
FROM ghcr.io/parkervcp/yolks:debian
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
## install required packages
RUN dpkg --add-architecture i386 \
&& apt update -y \
&& apt install -y --no-install-recommends gnupg2 software-properties-common libntlm0 winbind xvfb xauth python3 libncurses5:i386 libncurses6:i386
# Install winehq-stable and with recommends
RUN wget -nc https://dl.winehq.org/wine-builds/winehq.key \
&& apt-key add winehq.key \
&& echo "deb https://dl.winehq.org/wine-builds/debian/ bullseye main" >> /etc/apt/sources.list \
&& wget -O- -q download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_11/Release.key | apt-key add - \
&& echo "deb http://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_11 ./" | tee /etc/apt/sources.list.d/wine-obs.list \
&& apt update \
&& apt install -y --install-recommends winehq-stable cabextract xvfb
# Set up Winetricks
RUN wget -q -O /usr/sbin/winetricks https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks \
&& chmod +x /usr/sbin/winetricks
ENV HOME=/home/container
ENV WINEPREFIX=/home/container/.wine
ENV WINEDLLOVERRIDES="mscoree,mshtml="
ENV DISPLAY=:0
ENV DISPLAY_WIDTH=1024
ENV DISPLAY_HEIGHT=768
ENV DISPLAY_DEPTH=16
ENV AUTO_UPDATE=1
ENV XVFB=1
USER container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]