96 Commits

Author SHA1 Message Date
Michael (Parker) Parker
984ebc2edb forgot to update the workflow and readme 2025-05-19 16:17:33 -04:00
Michael (Parker) Parker
0178f44ac9 Add image for zandronum
zandronum needs a set of packages that are outdated.
2025-05-19 16:14:41 -04:00
QuintenQVD0
d4ef3db57e Fix mongoDB 8 and stop build 4 2025-05-17 14:36:19 +02:00
Michael (Parker) Parker
8133d7c80c Add MongoDB 8 (#296)
* Add MongoDB 8

Add yolk for MongoDB 8

* Add mongo 8 to the workflow file

* Update README

---------

Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
2025-05-17 13:40:41 +02:00
Michael (Parker) Parker
3a58cde6b2 Merge pull request #300 from pelican-eggs/nodejs-24
Add: nodejs 24
2025-05-11 21:44:00 -04:00
Quinten
6567d32bd5 Add: nodejs 24 2025-05-11 16:23:29 +02:00
Michael (Parker) Parker
d6440a510d Merge pull request #297 from pelican-eggs/update_mta
update mta yolk
2025-05-09 13:19:50 -04:00
Michael (Parker) Parker
b4aa2be2a3 update mta yolk
Updates to latest Ubuntu LTS release.
Updates the format used for dependencies

I have validated that this works with both current and upcoming releases,
2025-05-08 22:22:40 -04:00
Michael (Parker) Parker
7ca5ed1a16 Update nodejs yolks (#295)
* Update nodejs yolks

Move user creation and env to not rebuild on every update if not needed.

update apt install command to new format

update npm install command to properly be global to resolve ts-node issue

update npm install commands to install latest version available for node version

* fix build

moves section that sets the user and env vars to the bottom again.

I forgot the order of ops matters.

* fix issues with corepack

npm doesn't install a working version of corepack unless it's tagged to latest.
2025-04-11 18:47:17 +02:00
Michael (Parker) Parker
7695bbcc46 Merge pull request #291 from pelican-eggs/update_templates
update template
2025-03-31 19:04:49 -04:00
David Wolfe
0b17d6438b Fix games/source Dockerfile typo
Oops!
2025-03-30 13:26:21 -07:00
David Wolfe
cb724db09c Remove numactl & Dockerfile Cleanup (#294)
- Removed the `numactl` package from all images as SteamCMD no longer seems to have issues logging in with a real Steam account (at least on bookworm, which all these images use).

The following cleanup changes only apply to Dockerfiles that had `numactl` removed:
- Changed all Dockerfiles to use `apt` (instead of `apt-get`) for consistency.
- Changed all `apt install` packages to a "list" format for consistency and easier diff reading for future package additions/removals.
- Added `locales` to `games\source\Dockerfile` and set the locale.
- Moved all instances of the `useradd` command down with the other user and working directory commands. Also  added the shell specification flag if it was missing.
- Unified all Dockerfiles to use space-indenting and fixed some indent spacing.
- Cleaned up some comments.
2025-03-30 11:07:52 +02:00
Michael (Parker) Parker
0c79b0821c update template 2025-02-18 17:23:20 -05:00
Michael (Parker) Parker
a0c472c743 Merge pull request #289 from rmartinoscar/fix/Workflows
Fix workflows
2025-02-15 19:48:59 -05:00
RMartinOscar
26276c4034 replace $\{\{ \}\} with format() since we are already in a statement 2025-02-16 00:46:37 +00:00
Michael (Parker) Parker
6245ae5002 Merge pull request #288 from rmartinoscar/fix/Java
Fix java
2025-02-15 18:46:49 -05:00
RMartinOscar
e10d528c96 Fix java 2025-02-15 18:01:35 +00:00
Michael (Parker) Parker
5c24ee01bf Merge pull request #287 from rmartinoscar/fix/ForkWorkflows
Replace hardcoded with github.repository_owner
2025-02-15 10:50:42 -05:00
RMartinOscar
000ffe0f0a only tag parkervcp if its not a fork 2025-02-15 15:38:41 +00:00
RMartinOscar
d66eec8b73 Replace hardcoded with github.repository_owner 2025-02-15 14:16:04 +00:00
Michael (Parker) Parker
c6bb9edd91 Merge pull request #286 from RMartinOscar/fix/CRLF
Add `.gitattributes` to fix `CRLF`
2025-02-14 15:55:05 -05:00
RMartinOscar
10275ceec5 Normalize all the line endings 2025-02-12 22:57:17 +00:00
RMartinOscar
4a90f384db Add .gitattributes 2025-02-12 22:56:46 +00:00
Michael (Parker) Parker
6e6e28a184 Merge pull request #282 from Stigstille/patch-1
Add Java 22
2025-02-12 15:33:00 -05:00
Michael (Parker) Parker
a74ee17700 Wine update (#284)
* add wine 7-10

Add images for wine tagged to specific versions

* wine 9 remove libldap package

* add locales; cleanup the image

* Update Dockerfile

* missed locales package

* sort packages

* Update Dockerfile

* update default env

update all wine images with the same default env values

set `winedebug` to `-all`
remove `winearch=win64` as that is the default for wine

* update readme and workflow

* add wine 7-10

Add images for wine tagged to specific versions

* wine 9 remove libldap package

* update default env

update all wine images with the same default env values

set `winedebug` to `-all`
remove `winearch=win64` as that is the default for wine

* update readme and workflow

---------

Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com>
2025-02-11 07:25:25 +01:00
Michael (Parker) Parker
3590298ab4 Update mariadb (#285)
* add mariadb 11.5 and 11.6

adds latest mariadb docker images

* update workflow and readme

* Fix readme

---------

Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
2025-02-10 19:38:58 +01:00
Michael (Parker) Parker
730792652d Merge pull request #283 from gOOvER/locale-fix
steamcmd-debian/ add locales; cleanup the image
2025-02-09 12:09:14 -05:00
gOOvER
201e26d528 Update Dockerfile 2025-02-03 14:59:03 +01:00
gOOvER
316810d7ba sort packages 2025-02-03 14:57:22 +01:00
gOOvER
779158d44d missed locales package 2025-02-03 14:55:29 +01:00
gOOvER
6fdd41f4fd Update Dockerfile 2025-02-03 14:54:44 +01:00
gOOvER
6fa58100b4 add locales; cleanup the image 2025-02-03 14:38:22 +01:00
Stigstille
e8cb0376ec 2025-02-03 07:32:25 -05:00
Stigstille
f6b1f925b5 Update README.md 2025-01-15 13:37:09 -05:00
Stigstille
755f7ab632 Add Java 22 2025-01-15 12:21:38 -05:00
Quinten
e52ceeae2a Merge pull request #281 from gOOvER/rustfix
fixed Rust image
2025-01-15 18:03:11 +01:00
gOOvER
f6d97cee25 fixed rust image 2025-01-15 10:09:04 +01:00
bredo
5c01dfcce1 Merge pull request #280 from bredo228/steamcmd-dotnet9
Add .NET 9 to steamcmd dotnet
2025-01-07 12:44:52 +01:00
Michael (Parker) Parker
f758ba5064 Merge pull request #279 from pelican-eggs/LegacyKeyValueFormat
Update docker Legacy key value format and bump docker/build-push-action to v6
2025-01-03 11:13:21 -05:00
Quinten
9b59b81095 Bump: docker/build-push-action to v6 2025-01-03 11:07:53 +01:00
Quinten
6d82a2fee0 Fix: Docker LegacyKeyValueFormat 2025-01-03 11:02:41 +01:00
Michael (Parker) Parker
fb0be1aeca Merge pull request #277 from pelican-eggs/rust-carbon
Rust: Carbon repo changed
2025-01-02 10:19:05 -05:00
Quinten
7715662278 Rust: Carbon repo changed 2025-01-01 12:18:40 +01:00
Quinten
19ce2e09e9 add go 1.23 to README.md 2024-12-25 12:00:04 +01:00
Quinten
2c20a9df7f add go 1.23 2024-12-25 11:59:08 +01:00
David Wolfe
9ce202da7c [Arma 3 & DayZ] Fix SteamCMD error checking (#276)
* Fix SteamCMD error checking

Added `libcurl` as an excluded keyword for error checking. Was causing mod-timeout errors to be misreported as an unknown error.
2024-12-20 11:39:17 -08:00
Michael (Parker) Parker
bbc22b5929 Merge pull request #272 from pelican-eggs/dotnet-9
add Dotnet 9
2024-11-20 07:48:57 -05:00
Quinten
946aa2ea82 readme 2024-11-20 11:25:32 +01:00
Quinten
39b46f44c5 add Dotnet 9 2024-11-20 11:24:10 +01:00
Quinten
9dfa003141 Merge pull request #271 from pelican-eggs/nodejs-22
add back nodejs 22
2024-11-20 10:45:04 +01:00
Quinten
4fe3c49a62 add back nodejs 22 2024-11-20 10:43:31 +01:00
SrLicht
11c2e05621 Add Python 3.13 (#270)
* Update python.yml

* Add files via upload

* Py 3.13

* Update README.md

Adds python 3.13 to the readme
2024-11-20 10:39:23 +01:00
Quinten
f792807176 Add dotnet 8 to altv 2024-11-12 09:04:19 +01:00
Michael (Parker) Parker
a13e79fce2 Merge pull request #266 from MyDapitt/master
Update nodejs branch
2024-11-01 09:17:36 -04:00
Michael (Parker) Parker
67f65ee12c Merge pull request #267 from RMartinOscar/patch-1
Change base image to already include Node & NPM
2024-11-01 09:14:44 -04:00
Quinten
4384852949 no need for nodejs 22 2024-11-01 13:37:10 +01:00
Michael (Parker) Parker
0568f68528 Make wrapper executable
forgot this part,
2024-10-31 22:55:26 -04:00
Michael (Parker) Parker
51edfd31b6 Changed wrapper location
Installing `node_modules` in `/` fails

made a directory named `/wrapper/` and moved files there to resolve.

updated entrypoint to match new location.
2024-10-31 21:59:23 -04:00
Michael (Parker) Parker
d5d2194f6b corrected new lines in file
ran dos2unix on wrapper.js
2024-10-31 21:58:06 -04:00
MartinOscar
8331bdfa42 Update Dockerfile 2024-10-30 00:30:32 +01:00
mydapitt
bb8092b592 Add 'bookworm' label to Nodejs v20, v22, and v23 base image 2024-10-23 19:40:51 +07:00
mydapitt
755085d2d9 Added Nodejs (v22, v23), slight adjustments to some Nodejs Dockerfiles
- Added Nodejs version 22 and 23
- Starting Nodejs 20, 22, and above will not use the Debian version code name to follow the release of the latest Debian operating system version in the future
- In Dockerfile Nodejs 18, and 21 will install npm version 10.x.x
2024-10-23 19:13:22 +07:00
mydapitt
68f92a85ab Added Nodejs (v22, v23), slight adjustments to some Nodejs Dockerfiles
- Added Nodejs version 22 and 23
- Starting Nodejs 20, 22, and above will not use the Debian version code name to follow the release of the latest Debian operating system version in the future
- In Dockerfile Nodejs 18, and 21 will install npm version 10.x.x
2024-10-23 19:13:14 +07:00
It's Davitt
e8a541d1ee Adding Nodejs (v22, v23) 2024-10-23 18:55:54 +07:00
Red-Thirten
a98977b5df [oses/ubuntu] Bump Ubuntu to latest LTS (#265)
- Bumps Ubuntu to latest LTS version 24.04 (Noble Numbat)
- Unified the Dockerfile's style with Debian's Dockerfile (4-space even indenting)
- Added `org.opencontainers` labels (similar to Debian's Dockerfile)
- Fixed depreciated `DEBIAN_FRONTEND` env line by adding `=`
- Bumped `netcat` package to updated `netcat-openbsd`
- Bumped `libncurses5` package to updated `libncurses6`
- Bumped `libncursesw5` package to updated `libncursesw6`
2024-10-15 20:08:30 -07:00
Torsten Widmann
bc9645e8bf add pnpm to node images (#252)
* add pnpm to node images

* removed pnpm from 12 till 17, because as pnpm is only available from version 18
2024-09-28 12:09:36 +02:00
Quinten
a42febc72c Fix MariaDb 11.4 build 2024-09-28 11:48:15 +02:00
Quinten
a84e8296f0 Merge pull request #263 from mja00/fix/steamcmd-betas
fix: move app 1007 before the game
2024-09-08 18:48:35 +02:00
mja00
3c35b3e1e1 fix: move app 1007 before the game 2024-09-04 11:00:05 -04:00
Michael (Parker) Parker
80fdcf36b6 Merge pull request #262 from srnyx/fix-startup-colors
Fix #261
2024-08-25 22:52:33 -04:00
srnyx
54fa390139 Fix #261
https://github.com/pelican-eggs/yolks/issues/261
2024-08-25 21:21:13 -04:00
Michael (Parker) Parker
2f0b10b51d Merge pull request #260 from srnyx/fix-parsing
Remove `eval echo "$(cat -)"`
2024-08-24 20:44:51 -04:00
srnyx
238cfc7ded Remove eval echo "$(cat -)"
Everything still works as normal and this actually fixes complex startup commands as PR #259 was supposed to do
2024-08-23 22:50:31 -04:00
Michael (Parker) Parker
5e4e0a45a8 Merge pull request #259 from srnyx/fix-echo
Change `echo "${STARTUP}"` to `echo -e ${STARTUP}`
2024-08-22 22:22:46 -04:00
srnyx
7ac950ba0e Change echo "${STARTUP}" to echo -e ${STARTUP}
All other `entrypoint.sh` files use this change, so just making the incorrect ones match the rest
It also caused issues with complex startup commands that utilize if statements and such, so hopefully this fixes those issues
2024-08-22 18:34:03 -04:00
Michael (Parker) Parker
7b185c1dac Merge pull request #255 from pelican-eggs/fix-rust
rust: node 16 does not work
2024-07-23 10:07:22 -04:00
Michael (Parker) Parker
4b1c304693 Merge pull request #254 from pelican-eggs/mumble
Build mumble from source
2024-07-23 10:06:47 -04:00
Quinten
3325914ee8 Update build.sh for arm64 2024-07-21 12:47:41 +02:00
QuintenQVD0
2dcf0a5058 node 16 does not work 2024-07-18 16:13:03 +02:00
Michael (Parker) Parker
bfe479fc65 Merge pull request #251 from pelican-eggs/games_rust
add rust image
2024-07-18 09:05:55 -04:00
QuintenQVD0
f888177425 Build mumble from source 2024-07-17 20:29:45 +02:00
Matthew Dangerfield
681ffc488d [Arma 3] Added RPT logging (#253)
- Adds RPT logging (logs will be located in `/home/container/serverprofile/rpt/`, but only if `-noLogs` is not used as a startup parameter)
- Fixes edge case where clearing HC cache on first boot may fail due to a missing `serverprofile/` folder.
2024-07-07 16:24:02 -07:00
Red-Thirten
efc8507ae1 Update maintainer email address 2024-07-03 23:51:46 -07:00
Quinten
5035b0d4df add to readme 2024-06-26 09:02:17 +02:00
Quinten
727d71a662 add rust image 2024-06-26 08:59:24 +02:00
Quinten
716122d3be Merge pull request #250 from pelican-eggs/dayz-rcon
dayz: fix bercon permission
2024-06-15 09:51:31 +02:00
QuintenQVD0
bd036bff48 dayz: fix bercon permission 2024-06-15 09:50:53 +02:00
Quinten
80381ec9d8 Merge pull request #249 from shaynendradika/dayz-rcon-client
Add RCon Client for DayZ image
2024-06-14 08:50:10 +02:00
shaynendradika
33eee7766f add bercon installation for battleye rcon 2024-06-14 01:08:37 +07:00
Red-Thirten
2e3436f381 [DayZ] Image Cleanup (#247)
* [DayZ] Image Cleanup

- Removed `numactl` dependency as it seems SteamCMD updated and resolved its crashing issues on Linux when logging in with a real account.
- Added clearing of SteamCMD appworkshop cache before mod downloads to avoid potential failures (at least until I implement a better method using symlinks for mod folders).
- General cleanup of text and labels.

* Fix missing `WORKSHOP_DIR` global var
2024-06-06 12:35:04 +02:00
Michael (Parker) Parker
5f7b002633 Merge pull request #240 from pelican-eggs/1007
always install / update app id 1007
2024-05-31 09:01:42 -04:00
Michael (Parker) Parker
fc6812403a Merge pull request #246 from pelican-eggs/samp
Add libssl1.1 for samp and openmp
2024-05-20 16:29:08 -04:00
Quinten
c531bfee27 Remove the right file 2024-05-19 19:33:05 +02:00
Quinten
0e0c76820a 32 bit one? 2024-05-19 19:12:55 +02:00
Quinten
5b2e766364 Add libssl1.1 for samp and openmp 2024-05-19 18:28:43 +02:00
Quinten
43616ff3f8 always install / update app id 1007 2024-04-29 18:59:06 +02:00
131 changed files with 2083 additions and 663 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text eol=lf

View File

@@ -11,5 +11,5 @@
### New Image Submissions:
1. [ ] Have you added your image to the [Github workflows](https://github.com/parkervcp/yolks/tree/master/.github/workflows)?
1. [ ] Have you added your image to the [Github workflows](https://github.com/pelican-eggs/yolks/tree/master/.github/workflows)?
2. [ ] Have you updated the README list to contain your new image?

View File

@@ -32,12 +32,12 @@ jobs:
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./apps/${{ matrix.app }}
file: ./apps/${{ matrix.app }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/apps:${{ matrix.app }}
ghcr.io/parkervcp/apps:${{ matrix.app }}
ghcr.io/${{ github.repository_owner }}/apps:${{ matrix.app }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/apps:{0}', matrix.app) || '' }}

View File

@@ -30,12 +30,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./oses/${{ matrix.oses }}
file: ./oses/${{ matrix.oses }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:${{ matrix.oses }}
ghcr.io/parkervcp/yolks:${{ matrix.oses }}
ghcr.io/${{ github.repository_owner }}/yolks:${{ matrix.oses }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:{0}', matrix.oses) || '' }}

View File

@@ -41,7 +41,7 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./bot/${{ matrix.tag }}
file: ./bot/${{ matrix.tag }}/Dockerfile
@@ -50,8 +50,8 @@ jobs:
cache-to: type=local,dest=/tmp/.buildx-cache-new
push: true
tags: |
ghcr.io/pelican-eggs/yolks:bot_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:bot_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:bot_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:bot_{0}', matrix.tag) || '' }}
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
@@ -76,11 +76,11 @@ jobs:
# registry: ghcr.io
# username: ${{ github.repository_owner }}
# password: ${{ secrets.REGISTRY_TOKEN }}
# - uses: docker/build-push-action@v5
# - uses: docker/build-push-action@v6
# with:
# context: ./bot/${{ matrix.tag }}
# file: ./bot/${{ matrix.tag }}/Dockerfile
# platforms: linux/amd64
# push: true
# tags: |
# ghcr.io/parkervcp/yolks:bot_${{ matrix.tag }}
# ${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:bot_{0}', matrix.tag) || '' }}

View File

@@ -1,39 +1,39 @@
name: build box64
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- box64/**
jobs:
push:
name: "yolks:${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- box64
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
with:
context: ./box64
file: ./${{ matrix.tag }}/Dockerfile
platforms: linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:${{ matrix.tag }}
ghcr.io/parkervcp/yolks:${{ matrix.tag }}
name: build box64
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- box64/**
jobs:
push:
name: "yolks:${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- box64
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./box64
file: ./${{ matrix.tag }}/Dockerfile
platforms: linux/arm64
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/yolks:${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:{0}', matrix.tag) || '' }}

View File

@@ -29,12 +29,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./bun
file: ./bun/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:bun_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:bun_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:bun_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:bun_{0}', matrix.tag) || '' }}

View File

@@ -28,12 +28,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./cassandra
file: ./cassandra/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:cassandra_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:cassandra_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:cassandra_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:cassandra_{0}', matrix.tag) || '' }}

View File

@@ -1,44 +1,44 @@
name: build dart
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- dart/**
jobs:
push:
name: "yolks:dart_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- '2.17'
- '2.18'
- '2.19'
- '3.3'
- 'stable'
steps:
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
with:
context: ./dart
file: ./dart/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:dart_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:dart_${{ matrix.tag }}
name: build dart
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- dart/**
jobs:
push:
name: "yolks:dart_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- '2.17'
- '2.18'
- '2.19'
- '3.3'
- 'stable'
steps:
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./dart
file: ./dart/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/yolks:dart_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:dart_{0}', matrix.tag) || '' }}

View File

@@ -22,6 +22,7 @@ jobs:
- 6
- 7
- 8
- 9
steps:
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
@@ -34,12 +35,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./dotnet
file: ./dotnet/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:dotnet_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:dotnet_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:dotnet_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:dotnet_{0}', matrix.tag) || '' }}

View File

@@ -32,12 +32,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./elixir
file: ./elixir/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:elixir_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:elixir_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:elixir_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:elixir_{0}', matrix.tag) || '' }}

View File

@@ -31,12 +31,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./erlang
file: ./erlang/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:erlang_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:erlang_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:erlang_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:erlang_{0}', matrix.tag) || '' }}

View File

@@ -20,10 +20,12 @@ jobs:
- arma3
- dayz
- mohaa
- rust
- samp
- source
- valheim
- thebattleforwesnoth
- zandronum
steps:
- uses: actions/checkout@v4
@@ -35,15 +37,15 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./games/${{ matrix.game }}
file: ./games/${{ matrix.game }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/pelican-eggs/games:${{ matrix.game }}
ghcr.io/parkervcp/games:${{ matrix.game }}
ghcr.io/${{ github.repository_owner }}/games:${{ matrix.game }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/games:{0}', matrix.game) || '' }}
pushAll:
name: "games_All:${{ matrix.game }}"
runs-on: ubuntu-latest
@@ -67,12 +69,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./games/${{ matrix.game }}
file: ./games/${{ matrix.game }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/games:${{ matrix.game }}
ghcr.io/parkervcp/games:${{ matrix.game }}
ghcr.io/${{ github.repository_owner }}/games:${{ matrix.game }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/games:{0}', matrix.game) || '' }}

View File

@@ -25,6 +25,7 @@ jobs:
- '1.20'
- '1.21'
- '1.22'
- '1.23'
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
@@ -35,12 +36,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./go
file: ./go/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:go_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:go_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:go_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:go_{0}', matrix.tag) || '' }}

View File

@@ -30,12 +30,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./installers
file: ./installers/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/installers:${{ matrix.tag }}
ghcr.io/parkervcp/installers:${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/installers:${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/installers:{0}', matrix.tag) || '' }}

View File

@@ -25,6 +25,7 @@ jobs:
- 17
- 19
- 21
- 22
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
@@ -36,12 +37,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./java
file: ./java/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:java_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:java_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:java_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:java_{0}', matrix.tag) || '' }}

View File

@@ -25,6 +25,8 @@ jobs:
- '11.2'
- '11.3'
- '11.4'
- '11.5'
- '11.6'
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
@@ -36,12 +38,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./mariadb
file: ./mariadb/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:mariadb_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:mariadb_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:mariadb_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:mariadb_{0}', matrix.tag) || '' }}

View File

@@ -17,10 +17,10 @@ jobs:
fail-fast: false
matrix:
tag:
- 4
- 5
- 6
- 7
- 8
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
@@ -32,12 +32,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./mongodb
file: ./mongodb/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:mongodb_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:mongodb_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:mongodb_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:mongodb_{0}', matrix.tag) || '' }}

View File

@@ -27,12 +27,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./mono
file: ./mono/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:mono_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:mono_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:mono_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:mono_{0}', matrix.tag) || '' }}

View File

@@ -24,6 +24,9 @@ jobs:
- 19
- 20
- 21
- 22
- 23
- 24
steps:
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
@@ -36,12 +39,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./nodejs
file: ./nodejs/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:nodejs_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:nodejs_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:nodejs_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:nodejs_{0}', matrix.tag) || '' }}

View File

@@ -35,12 +35,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./postgres
file: ./postgres/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:postgres_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:postgres_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:postgres_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:postgres_{0}', matrix.tag) || '' }}

View File

@@ -23,6 +23,7 @@ jobs:
- '3.10'
- '3.11'
- '3.12'
- '3.13'
steps:
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
@@ -35,12 +36,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./python
file: ./python/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:python_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:python_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:python_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:python_{0}', matrix.tag) || '' }}

View File

@@ -31,12 +31,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./redis
file: ./redis/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:redis_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:redis_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:redis_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:redis_{0}', matrix.tag) || '' }}

View File

@@ -31,12 +31,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./rust
file: ./rust/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:rust_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:rust_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:rust_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:rust_{0}', matrix.tag) || '' }}

View File

@@ -32,12 +32,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./steamcmd
file: ./steamcmd/${{ matrix.distro }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/pelican-eggs/steamcmd:${{ matrix.distro }}
ghcr.io/parkervcp/steamcmd:${{ matrix.distro }}
ghcr.io/${{ github.repository_owner }}/steamcmd:${{ matrix.distro }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/steamcmd:{0}', matrix.distro) || '' }}

View File

@@ -27,15 +27,15 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./voice/${{ matrix.tag }}
file: ./voice/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:voice_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:voice_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:voice_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:voice_{0}', matrix.tag) || '' }}
pushx64_arm64:
@@ -59,12 +59,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./voice/${{ matrix.tag }}
file: ./voice/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:voice_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:voice_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:voice_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:voice_{0}', matrix.tag) || '' }}

View File

@@ -16,6 +16,10 @@ jobs:
fail-fast: false
matrix:
tag:
- "7"
- "8"
- "9"
- "10"
- latest
- devel
- staging
@@ -29,12 +33,12 @@ jobs:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5
- uses: docker/build-push-action@v6
with:
context: ./wine
file: ./wine/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/pelican-eggs/yolks:wine_${{ matrix.tag }}
ghcr.io/parkervcp/yolks:wine_${{ matrix.tag }}
ghcr.io/${{ github.repository_owner }}/yolks:wine_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:wine_{0}', matrix.tag) || '' }}

View File

@@ -97,6 +97,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:dotnet_7`
* [`dotnet8.0`](/dotnet/8)
* `ghcr.io/parkervcp/yolks:dotnet_8`
* [`dotnet9.0`](/dotnet/9)
* `ghcr.io/parkervcp/yolks:dotnet_9`
### [Elixir](/elixir)
@@ -131,9 +133,11 @@ is tagged correctly.
* [`minetest`](/games/minetest)
* `ghcr.io/parkervcp/games:minetest`
* [`mohaa`](games/mohaa)
* `ghcr.io/pterodactyl/games:mohaa`
* `ghcr.io/parkervcp/games:mohaa`
* [`Multi Theft Auto: San Andreas`](games/mta)
* `ghcr.io/pterodactyl/games:mta`
* `ghcr.io/parkervcp/games:mta`
* [`Rust (dedicated server)`](games/rust)
* `ghcr.io/parkervcp/games:rust`
* [`samp`](/games/samp)
* `ghcr.io/parkervcp/games:samp`
* [`source`](/games/source)
@@ -142,6 +146,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/games:thebattleforwesnoth`
* [`valheim`](/games/valheim)
* `ghcr.io/parkervcp/games:valheim`
* [`zandronum`](/games/zandronum)
* `ghcr.io/parkervcp/games:zandronum`
### [Golang](/go)
@@ -163,6 +169,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:go_1.21`
* [`go1.22`](/go/1.22)
* `ghcr.io/parkervcp/yolks:go_1.22`
* [`go1.23`](/go/1.23)
* `ghcr.io/parkervcp/yolks:go_1.23`
### [Java](/java)
@@ -178,6 +186,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:java_19`
* [`java21`](/java/21)
* `ghcr.io/parkervcp/yolks:java_21`
* [`java22`](/java/22)
* `ghcr.io/parkervcp/yolks:java_22`
### [MariaDB](/mariadb)
@@ -197,17 +207,21 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:mariadb_11.3`
* [`MariaDB 11.4`](/mariadb/11.4)
* `ghcr.io/parkervcp/yolks:mariadb_11.4`
* [`MariaDB 11.5`](/mariadb/11.5)
* `ghcr.io/parkervcp/yolks:mariadb_11.5`
* [`MariaDB 11.6`](/mariadb/11.6)
* `ghcr.io/parkervcp/yolks:mariadb_11.6`
### [MongoDB](/mongodb)
* [`MongoDB 4`](/mongodb/4)
* `ghcr.io/parkervcp/yolks:mongodb_4`
* [`MongoDB 5`](/mongodb/5)
* `ghcr.io/parkervcp/yolks:mongodb_5`
* [`MongoDB 6`](/mongodb/6)
* `ghcr.io/parkervcp/yolks:mongodb_6`
* [`MongoDB 7`](/mongodb/7)
* `ghcr.io/parkervcp/yolks:mongodb_7`
* [`MongoDB 8`](/mongodb/8)
* `ghcr.io/parkervcp/yolks:mongodb_8`
### [Mono](/mono)
@@ -232,7 +246,13 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:nodejs_20`
* [`node21`](/nodejs/21)
* `ghcr.io/parkervcp/yolks:nodejs_21`
* [`node22`](/nodejs/22)
* `ghcr.io/parkervcp/yolks:nodejs_22`
* [`node23`](/nodejs/23)
* `ghcr.io/parkervcp/yolks:nodejs_23`
* [`node24`](/nodejs/24)
* `ghcr.io/parkervcp/yolks:nodejs_24`
### [PostgreSQL](/postgres)
* [`Postgres 9`](/postgres/9)
@@ -262,6 +282,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:python_3.11`
* [`python3.12`](/python/3.12)
* `ghcr.io/parkervcp/yolks:python_3.12`
* [`python3.13`](/python/3.13)
* `ghcr.io/parkervcp/yolks:python_3.13`
### [Redis](/redis)
@@ -304,6 +326,10 @@ is tagged correctly.
### [Wine](/wine)
* [`Wine`](/wine)
* `ghcr.io/parkervcp/yolks:wine_7`
* `ghcr.io/parkervcp/yolks:wine_8`
* `ghcr.io/parkervcp/yolks:wine_9`
* `ghcr.io/parkervcp/yolks:wine_10`
* `ghcr.io/parkervcp/yolks:wine_latest`
* `ghcr.io/parkervcp/yolks:wine_devel`
* `ghcr.io/parkervcp/yolks:wine_staging`

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
# general packages

View File

@@ -3,7 +3,7 @@ FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL org.opencontainers.image.authors="i2007@damw.eu"
LABEL version="1.0"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Install Dependencies
RUN apt update \
@@ -14,8 +14,8 @@ RUN apt update \
&& useradd -m -d /home/container container
#RUN python3 -m pip install requests
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
USER container
ENV USER=container HOME=/home/container

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
## Update base packages
RUN apt update \

View File

@@ -29,10 +29,10 @@ 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 -)")
PARSED=$(echo "$STARTUP" | sed -e 's/{{/${/g' -e 's/}}/}/g')
# 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@pelican~ \033[0m%s\n" "$PARSED"
# 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
exec env ${PARSED}
eval "$PARSED"

View File

@@ -1,18 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH dart:2.17
LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \
&& 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"]
FROM --platform=$TARGETOS/$TARGETARCH dart:2.17
LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \
&& 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"]

View File

@@ -1,18 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH dart:2.18
LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \
&& 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"]
FROM --platform=$TARGETOS/$TARGETARCH dart:2.18
LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \
&& 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"]

View File

@@ -1,18 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH dart:2.19
LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \
&& 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"]
FROM --platform=$TARGETOS/$TARGETARCH dart:2.19
LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \
&& 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"]

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt upgrade -y \

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt upgrade -y \

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt upgrade -y \

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt upgrade -y \

View File

@@ -1,25 +1,25 @@
FROM --platform=$TARGETOS/$TARGETARCH 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 curl iproute2 libgdiplus tini \
&& wget https://dot.net/v1/dotnet-install.sh \
&& D_V="$(curl -sSL https://dotnet.microsoft.com/en-us/download/dotnet/7.0 | grep -i '<h3 id="sdk-7.*">SDK 7.*.*</h3>' | head -1 | awk -F\" '{print $3}' | awk '{print $2;}' | sed 's/<\/h3>//g')" \
&& chmod +x dotnet-install.sh \
&& ./dotnet-install.sh -i /usr/share -v $D_V \
&& ln -s /usr/share/dotnet /usr/bin/dotnet
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"]
FROM --platform=$TARGETOS/$TARGETARCH 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 curl iproute2 libgdiplus tini \
&& wget https://dot.net/v1/dotnet-install.sh \
&& D_V="$(curl -sSL https://dotnet.microsoft.com/en-us/download/dotnet/7.0 | grep -i '<h3 id="sdk-7.*">SDK 7.*.*</h3>' | head -1 | awk -F\" '{print $3}' | awk '{print $2;}' | sed 's/<\/h3>//g')" \
&& chmod +x dotnet-install.sh \
&& ./dotnet-install.sh -i /usr/share -v $D_V \
&& ln -s /usr/share/dotnet /usr/bin/dotnet
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"]

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt upgrade -y \

25
dotnet/9/Dockerfile Normal file
View File

@@ -0,0 +1,25 @@
FROM --platform=$TARGETOS/$TARGETARCH 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 curl iproute2 libgdiplus tini \
&& wget https://dot.net/v1/dotnet-install.sh \
&& D_V="$(curl -sSL https://dotnet.microsoft.com/en-us/download/dotnet/9.0 | grep -i '<h3 id="sdk-9.*">SDK 9.*.*</h3>' | head -1 | awk -F\" '{print $3}' | awk '{print $2;}' | sed 's/<\/h3>//g')" \
&& chmod +x dotnet-install.sh \
&& ./dotnet-install.sh -i /usr/share -v $D_V \
&& ln -s /usr/share/dotnet /usr/bin/dotnet
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"]

View File

@@ -1,16 +1,16 @@
FROM --platform=$TARGETOS/$TARGETARCH erlang:25-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \
&& 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" ]
FROM --platform=$TARGETOS/$TARGETARCH erlang:25-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \
&& 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,16 +1,16 @@
FROM --platform=$TARGETOS/$TARGETARCH erlang:26-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \
&& 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" ]
FROM --platform=$TARGETOS/$TARGETARCH erlang:26-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \
&& 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

@@ -16,10 +16,10 @@ erl -noshell -eval 'erlang:display(erlang:system_info(system_version))' -eval 'i
# 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 -)")
PARSED=$(echo "$STARTUP" | sed -e 's/{{/${/g' -e 's/}}/}/g')
# 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@pelican~ \033[0m%s\n" "$PARSED"
# 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
exec env ${PARSED}
eval "$PARSED"

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH node:16-bookworm
LABEL author="goover" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN useradd -m -d /home/container -s /bin/bash container
@@ -18,7 +18,7 @@ RUN apt update -y \
RUN wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& apt update -y \
&& apt install -y dotnet-sdk-6.0 dotnet-sdk-7.0 libgdiplus
&& apt install -y dotnet-sdk-6.0 dotnet-sdk-7.0 dotnet-sdk-8.0 libgdiplus
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
@@ -32,4 +32,4 @@ STOPSIGNAL SIGINT
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]
CMD ["/entrypoint.sh"]

View File

@@ -1,6 +1,6 @@
FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim
LABEL author="David Wolfe (Red-Thirten)" maintainer="rehlmgaming@gmail.com"
LABEL author="David Wolfe (Red-Thirten)" maintainer="red_thirten@yahoo.com"
LABEL org.opencontainers.image.source="https://github.com/parkervcp/yolks"
LABEL org.opencontainers.image.licenses=MIT

View File

@@ -54,8 +54,9 @@ function RunSteamCMD { #[Input: int server=0 mod=1 optional_mod=2; int id]
# Error checking for SteamCMD
steamcmdExitCode=${PIPESTATUS[0]}
loggedErrors=$(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL\|steamservice\|thread")
if [[ -n ${loggedErrors} ]]; then # Catch errors (ignore setlocale, SDL, steamservice, and thread priority warnings)
# Catch errors (ignore setlocale, SDL, steamservice, thread priority, and libcurl warnings)
loggedErrors=$(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL\|steamservice\|thread\|libcurl")
if [[ -n ${loggedErrors} ]]; then
# Soft errors
if [[ -n $(grep -i "Timeout downloading item" "${STEAMCMD_LOG}") ]]; then # Mod download timeout
echo -e "\n${YELLOW}[UPDATE]: ${NC}Timeout downloading Steam Workshop mod: \"${CYAN}${modName}${NC}\" (${CYAN}${2}${NC})"
@@ -346,6 +347,12 @@ if [[ ${MODS_LOWERCASE} == "1" ]]; then
done
fi
# Define the log file path with a timestamp
LOG_FILE="/home/container/serverprofile/rpt/arma3server_$(date '+%m_%d_%Y_%H%M%S').rpt"
# Ensure the logs directory exists
mkdir -p /home/container/serverprofile/rpt
# Clear HC cache, if specified
if [[ ${CLEAR_CACHE} == "1" ]]; then
echo -e "\n${GREEN}[STARTUP]: ${CYAN}Clearing Headless Client profiles cache...${NC}"
@@ -395,7 +402,11 @@ fi
# Start the Server
echo -e "\n${GREEN}[STARTUP]:${NC} Starting server with the following startup command:"
echo -e "${CYAN}${modifiedStartup}${NC}\n"
${modifiedStartup}
if [[ "$STARTUP_PARAMS" == *"-noLogs"* ]]; then
${modifiedStartup}
else
${modifiedStartup} 2>&1 | tee -a "$LOG_FILE"
fi
if [ $? -ne 0 ]; then
echo -e "\n${RED}PTDL_CONTAINER_ERR: There was an error while attempting to run the start command.${NC}\n"

View File

@@ -1,8 +1,8 @@
FROM --platform=$BUILDPLATFORM debian:bullseye-slim
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="David Wolfe (Red-Thirten)" maintainer="rehlmgaming@gmail.com"
LABEL author="David Wolfe (Red-Thirten)" maintainer="red_thirten@yahoo.com"
LABEL org.opencontainers.image.source="https://github.com/parkervcp/yolks"
LABEL org.opencontainers.image.source="https://github.com/pelican-eggs/yolks"
LABEL org.opencontainers.image.licenses=MIT
## Update base packages and install dependencies
@@ -17,7 +17,6 @@ RUN dpkg --add-architecture i386 \
iproute2 \
gettext-base \
ca-certificates \
numactl \
libssl-dev \
lib32gcc-s1 \
libsdl2-2.0-0 \
@@ -29,11 +28,17 @@ RUN dpkg --add-architecture i386 \
libnss-wrapper \
tini
## install rcon client (bercon)
RUN cd /tmp/ \
&& curl -sSL https://github.com/WoozyMasta/bercon/releases/download/1.0.0/bercon > bercon \
&& mv bercon /usr/local/bin/ \
&& chmod +x /usr/local/bin/bercon
## Configure locale
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
## Prepare NSS Wrapper for the entrypoint as a workaround for Arma 3 requiring a valid UID
## Prepare NSS Wrapper for the entrypoint as a workaround for DayZ requiring a valid UID
ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group
RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
@@ -46,9 +51,10 @@ USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
STOPSIGNAL SIGINT
## Copy over and execute entrypoint.sh via Tini
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

View File

@@ -1,15 +1,16 @@
#!/bin/bash
## File: Pterodactyl DayZ SA Image - entrypoint.sh
## File: DayZ Image - entrypoint.sh
## Author: David Wolfe (Red-Thirten)
## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/)
## Date: 2022/11/27
## Date: 2024/06/05
## License: MIT License
## === CONSTANTS ===
STEAMCMD_DIR="./steamcmd" # SteamCMD's directory containing steamcmd.sh
WORKSHOP_DIR="./Steam/steamapps/workshop" # SteamCMD's directory containing workshop downloads
STEAMCMD_LOG="${STEAMCMD_DIR}/steamcmd.log" # Log file for SteamCMD
GAME_ID=221100 # SteamCMD ID for the DayZ SA GAME (not server). Only used for Workshop mod downloads.
GAME_ID=221100 # SteamCMD ID for the DayZ GAME (not server). Only used for Workshop mod downloads.
# Color Codes
CYAN='\033[0;36m'
@@ -45,14 +46,16 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id]
# Check if updating server or mod
if [[ $1 == 0 ]]; then # Server
numactl --physcpubind=+0 ${STEAMCMD_DIR}/steamcmd.sh +force_install_dir /home/container "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +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
numactl --physcpubind=+0 ${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
# Error checking for SteamCMD
steamcmdExitCode=${PIPESTATUS[0]}
if [[ -n $(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL\|thread") ]]; then # Catch errors (ignore setlocale, SDL, and thread priority warnings)
# Catch errors (ignore setlocale, SDL, steamservice, thread priority, and libcurl warnings)
loggedErrors=$(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL\|steamservice\|thread\|libcurl")
if [[ -n ${loggedErrors} ]]; then
# Soft errors
if [[ -n $(grep -i "Timeout downloading item" "${STEAMCMD_LOG}") ]]; then # Mod download timeout
echo -e "\n${YELLOW}[UPDATE]: ${NC}Timeout downloading Steam Workshop mod: \"${CYAN}${modName}${NC}\" (${CYAN}${2}${NC})"
@@ -104,8 +107,8 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id]
# Move the downloaded mod to the root directory, and replace existing mod if needed
mkdir -p ./@$2
rm -rf ./@$2/*
mv -f ./Steam/steamapps/workshop/content/$GAME_ID/$2/* ./@$2
rm -d ./Steam/steamapps/workshop/content/$GAME_ID/$2
mv -f ${WORKSHOP_DIR}/content/$GAME_ID/$2/* ./@$2
rm -d ${WORKSHOP_DIR}/content/$GAME_ID/$2
# Make the mods contents all lowercase
ModsLowercase @$2
# Move any .bikey's to the keys directory
@@ -238,6 +241,11 @@ if [[ ${UPDATE_SERVER} == 1 ]]; then
if [[ -n $latestUpdate ]] && [[ $latestUpdate =~ ^[0-9]+$ ]]; then # Notify last update date, if valid
echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}"
fi
# Delete SteamCMD appworkshop cache before running to avoid mod download failures
echo -e "\tClearing SteamCMD appworkshop cache..."
rm -f ${WORKSHOP_DIR}/appworkshop_$GAME_ID.acf
echo -e "\tAttempting mod update/download via SteamCMD...\n"
RunSteamCMD 1 $modID
fi
@@ -280,6 +288,6 @@ echo -e "${CYAN}${modifiedStartup}${NC}\n"
${modifiedStartup}
if [ $? -ne 0 ]; then
echo -e "\n${RED}PTDL_CONTAINER_ERR: There was an error while attempting to run the start command.${NC}\n"
echo -e "\n${RED}[STARTUP_ERR]: There was an error while attempting to run the start command.${NC}\n"
exit 1
fi

View File

@@ -1,16 +1,16 @@
FROM --platform=$TARGETOS/$TARGETARCH ubuntu:22.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
FROM --platform=$TARGETOS/$TARGETARCH ubuntu:22.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" ]

View File

@@ -1,23 +1,42 @@
FROM --platform=$TARGETOS/$TARGETARCH ubuntu:20.04
ENV DEBIAN_FRONTEND noninteractive
## add container user
RUN useradd -m -d /home/container -s /bin/bash container
## update base packages
RUN apt update \
&& apt upgrade -y
## install dependencies
RUN apt install -y iproute2 tar libssl1.1 curl git default-libmysqlclient-dev libmysqlclient-dev libreadline-gplv2-dev libncurses5-dev libncursesw5-dev \
libtool zip unzip libncurses5 libncursesw5 python3 openssl locales ffmpeg apt-transport-https libc6 binutils xz-utils liblua5.1-0
## configure locale
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
FROM --platform=$TARGETOS/$TARGETARCH ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
## add container user
RUN useradd -m -d /home/container -s /bin/bash container
## update base packages
RUN apt update && \
apt upgrade -y
## install dependencies
RUN apt install -y iproute2 \
curl \
git \
zip \
unzip \
tar \
xz-utils \
apt-transport-https \
openssl \
libssl3 \
default-libmysqlclient-dev \
libmysqlclient-dev \
libreadline-dev \
libncurses-dev \
libtool \
python3 \
locales \
ffmpeg \
libc6 \
binutils \
liblua5.1-0
## configure locale
RUN update-locale lang=en_US.UTF-8 && \
dpkg-reconfigure --frontend noninteractive locales
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD [ "/bin/bash", "/entrypoint.sh" ]

41
games/rust/Dockerfile Normal file
View File

@@ -0,0 +1,41 @@
FROM node:22-slim
ARG DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 \
&& apt update \
&& apt upgrade -y
RUN apt install -y \
lib32gcc-s1 \
lib32stdc++6 \
locales \
unzip \
curl \
iproute2 \
tzdata \
libgdiplus \
libsdl2-2.0-0:i386
RUN mkdir /wrapper \
&& npm install --prefix /wrapper ws
# Set the locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
locale-gen
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
## Setup user and working directory
RUN useradd -m -d /home/container -s /bin/bash container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
COPY --chown=container:container ./wrapper.js /wrapper/wrapper.js
RUN chmod +x /wrapper/wrapper.js
CMD [ "/bin/bash", "/entrypoint.sh" ]

58
games/rust/entrypoint.sh Normal file
View File

@@ -0,0 +1,58 @@
#!/bin/bash
# Wait for the container to fully 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
## if auto_update is not set or to 1 update
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Allow for the staging branch to also update itself
./steamcmd/steamcmd.sh +force_install_dir /home/container +login anonymous +app_update 258550 $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) +quit
else
echo -e "Not updating game server as auto update was set to 0. Starting Server"
fi
# Replace Startup Variables
MODIFIED_STARTUP=$(eval echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo ":/home/container$ ${MODIFIED_STARTUP}"
if [[ "${FRAMEWORK}" == "carbon" ]]; then
# Carbon: https://github.com/CarbonCommunity/Carbon
echo "Updating Carbon..."
curl -sSL "https://github.com/CarbonCommunity/Carbon/releases/download/production_build/Carbon.Linux.Release.tar.gz" | tar zx
echo "Done updating Carbon!"
export DOORSTOP_ENABLED=1
export DOORSTOP_TARGET_ASSEMBLY="$(pwd)/carbon/managed/Carbon.Preloader.dll"
MODIFIED_STARTUP="LD_PRELOAD=$(pwd)/libdoorstop.so ${MODIFIED_STARTUP}"
elif [[ "${FRAMEWORK}" == "oxide-staging" ]]; then
echo "updating oxide-staging"
curl -sSL -o oxide-staging.zip "https://downloads.oxidemod.com/artifacts/Oxide.Rust/staging/Oxide.Rust-linux.zip"
unzip -o -q oxide-staging.zip
rm oxide-staging.zip
echo "Done updating oxide Staging"
elif [[ "$OXIDE" == "1" ]] || [[ "${FRAMEWORK}" == "oxide" ]]; then
# Oxide: https://github.com/OxideMod/Oxide.Rust
echo "Updating uMod..."
curl -sSL "https://github.com/OxideMod/Oxide.Rust/releases/latest/download/Oxide.Rust-linux.zip" > umod.zip
unzip -o -q umod.zip
rm umod.zip
echo "Done updating uMod!"
# else Vanilla, do nothing
fi
# Fix for Rust not starting
export LD_LIBRARY_PATH=$(pwd)/RustDedicated_Data/Plugins/x86_64:$(pwd)
# Run the Server
/wrapper/wrapper.js "${MODIFIED_STARTUP}"

140
games/rust/wrapper.js Executable file
View File

@@ -0,0 +1,140 @@
#!/usr/bin/env node
var startupCmd = "";
const fs = require("fs");
fs.writeFile("latest.log", "", (err) => {
if (err) console.log("Callback error in appendFile:" + err);
});
var args = process.argv.splice(process.execArgv.length + 2);
for (var i = 0; i < args.length; i++) {
if (i === args.length - 1) {
startupCmd += args[i];
} else {
startupCmd += args[i] + " ";
}
}
if (startupCmd.length < 1) {
console.log("Error: Please specify a startup command.");
process.exit();
}
const seenPercentage = {};
function filter(data) {
const str = data.toString();
if (str.startsWith("Loading Prefab Bundle ")) { // Rust seems to spam the same percentage, so filter out any duplicates.
const percentage = str.substr("Loading Prefab Bundle ".length);
if (seenPercentage[percentage]) return;
seenPercentage[percentage] = true;
}
console.log(str);
}
var exec = require("child_process").exec;
console.log("Starting Rust...");
var exited = false;
const gameProcess = exec(startupCmd);
gameProcess.stdout.on('data', filter);
gameProcess.stderr.on('data', filter);
gameProcess.on('exit', function (code, signal) {
exited = true;
if (code) {
console.log("Main game process exited with code " + code);
// process.exit(code);
}
});
function initialListener(data) {
const command = data.toString().trim();
if (command === 'quit') {
gameProcess.kill('SIGTERM');
} else {
console.log('Unable to run "' + command + '" due to RCON not being connected yet.');
}
}
process.stdin.resume();
process.stdin.setEncoding("utf8");
process.stdin.on('data', initialListener);
process.on('exit', function (code) {
if (exited) return;
console.log("Received request to stop the process, stopping the game...");
gameProcess.kill('SIGTERM');
});
var waiting = true;
var poll = function () {
function createPacket(command) {
var packet = {
Identifier: -1,
Message: command,
Name: "WebRcon"
};
return JSON.stringify(packet);
}
var serverHostname = process.env.RCON_IP ? process.env.RCON_IP : "localhost";
var serverPort = process.env.RCON_PORT;
var serverPassword = process.env.RCON_PASS;
var WebSocket = require("ws");
var ws = new WebSocket("ws://" + serverHostname + ":" + serverPort + "/" + serverPassword);
ws.on("open", function open() {
console.log("Connected to RCON. Generating the map now. Please wait until the server status switches to \"Running\".");
waiting = false;
// Hack to fix broken console output
ws.send(createPacket('status'));
process.stdin.removeListener('data', initialListener);
gameProcess.stdout.removeListener('data', filter);
gameProcess.stderr.removeListener('data', filter);
process.stdin.on('data', function (text) {
ws.send(createPacket(text));
});
});
ws.on("message", function (data, flags) {
try {
var json = JSON.parse(data);
if (json !== undefined) {
if (json.Message !== undefined && json.Message.length > 0) {
console.log(json.Message);
const fs = require("fs");
fs.appendFile("latest.log", "\n" + json.Message, (err) => {
if (err) console.log("Callback error in appendFile:" + err);
});
}
} else {
console.log("Error: Invalid JSON received");
}
} catch (e) {
if (e) {
console.log(e);
}
}
});
ws.on("error", function (err) {
waiting = true;
console.log("Waiting for RCON to come up...");
setTimeout(poll, 5000);
});
ws.on("close", function () {
if (!waiting) {
console.log("Connection to server closed.");
exited = true;
process.exit();
}
});
}
poll();

View File

@@ -1,27 +1,33 @@
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com"
RUN apt update \
&& apt -y upgrade
RUN dpkg --add-architecture i386 \
&& apt update \
&& apt upgrade -y \
&& apt install -y libstdc++6 lib32stdc++6 tar curl iproute2 openssl fontconfig dirmngr ca-certificates dnsutils tzdata zip tini \
&& apt install -y libtbb12:i386 libtbb-dev:i386 libicu-dev:i386 \
&& useradd -d /home/container -m container
RUN mkdir -p /run/systemd && echo 'docker' > /run/systemd/container
RUN rm -rf /var/lib/apt/lists/*
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"]
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com"
RUN apt update \
&& apt -y upgrade
RUN dpkg --add-architecture i386 \
&& apt update \
&& apt upgrade -y \
&& apt install -y libstdc++6 lib32stdc++6 tar wget curl iproute2 openssl fontconfig dirmngr ca-certificates dnsutils tzdata zip tini \
&& apt install -y libtbb12:i386 libtbb-dev:i386 libicu-dev:i386 \
&& useradd -d /home/container -m container
RUN mkdir -p /run/systemd && echo 'docker' > /run/systemd/container
RUN rm -rf /var/lib/apt/lists/*
# Temp fix for things that still need libssl1.1 32 bit
RUN if [ "$(uname -m)" = "x86_64" ]; then \
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_i386.deb && \
dpkg -i libssl1.1_1.1.0g-2ubuntu4_i386.deb && \
rm libssl1.1_1.1.0g-2ubuntu4_i386.deb; \
fi
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"]

View File

@@ -32,29 +32,65 @@ ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 \
&& apt update \
&& apt upgrade -y \
&& apt install -y tar curl gcc g++ lib32gcc-s1 libgcc-11-dev libgcc-12-dev libcurl4-gnutls-dev:i386 libssl-dev: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-traditional tzdata numactl wget tini \
&& useradd -m -d /home/container container
&& apt install -y \
curl \
g++ \
gcc \
gdb \
iproute2 \
locales \
net-tools \
netcat-traditional \
tar \
telnet \
tini \
tzdata \
wget \
lib32gcc-s1 \
lib32stdc++6 \
lib32tinfo6 \
lib32z1 \
libcurl3-gnutls:i386 \
libcurl4-gnutls-dev:i386 \
libcurl4:i386 \
libfontconfig1 \
libgcc-11-dev \
libgcc-12-dev \
libncurses5:i386 \
libsdl1.2debian \
libsdl2-2.0-0:i386 \
libssl-dev:i386 \
libtinfo6:i386
## install rcon
# Install rcon
RUN cd /tmp/ \
&& curl -sSL https://github.com/gorcon/rcon-cli/releases/download/v0.10.3/rcon-0.10.3-amd64_linux.tar.gz > rcon.tar.gz \
&& tar xvf rcon.tar.gz \
&& mv rcon-0.10.3-amd64_linux/rcon /usr/local/bin/
# Temp fix for things that still need libssl1.1
RUN if [ "$(uname -m)" = "x86_64" ]; then \
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb && \
dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb && \
rm libssl1.1_1.1.0g-2ubuntu4_amd64.deb; \
fi
# Temp fix for things that still need libssl1.1
RUN if [ "$(uname -m)" = "x86_64" ]; then \
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb && \
dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb && \
rm libssl1.1_1.1.0g-2ubuntu4_amd64.deb; \
fi
# Set the locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
locale-gen
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
# Setup user and working directory
RUN useradd -m -d /home/container -s /bin/bash container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
STOPSIGNAL SIGINT
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

View File

@@ -52,11 +52,7 @@ fi
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then
if [ "${STEAM_USER}" == "anonymous" ]; 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
numactl --physcpubind=+0 ./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
fi
./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +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

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH ubuntu:22.04
LABEL author="Daniel Barton" maintainer="danny6167@gmail.com"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
## add container user
RUN useradd -m -d /home/container -s /bin/bash container

View File

@@ -21,7 +21,7 @@ fi
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
./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +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

View File

@@ -0,0 +1,33 @@
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
RUN apt update && \
apt upgrade -y && \
apt install -y \
tini \
wget \
libsdl1.2debian \
libsdl2-2.0-0
RUN wget https://snapshot.debian.org/archive/debian/20190501T215844Z/pool/main/g/glibc/multiarch-support_2.28-10_amd64.deb && \
wget https://snapshot.debian.org/archive/debian/20141009T042436Z/pool/main/libj/libjpeg8/libjpeg8_8d1-2_amd64.deb && \
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb && \
apt install -y ./libjpeg8_8d1-2_amd64.deb ./multiarch-support_2.28-10_amd64.deb ./libssl1.1_1.1.0g-2ubuntu4_amd64.deb
## add container user
RUN useradd -m -d /home/container -s /bin/bash container
# 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"]

View File

@@ -0,0 +1,13 @@
#!/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
# 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}

View File

@@ -1,38 +1,38 @@
#
# 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=$TARGETOS/$TARGETARCH golang:1.22-alpine
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 tzdata \
&& 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" ]
#
# 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=$TARGETOS/$TARGETARCH golang:1.22-alpine
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 tzdata \
&& 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" ]

12
go/1.23/Dockerfile Normal file
View File

@@ -0,0 +1,12 @@
FROM --platform=$TARGETOS/$TARGETARCH golang:1.23-alpine
RUN apk add --update --no-cache ca-certificates tzdata \
&& 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

@@ -40,10 +40,10 @@ go 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' | eval echo "$(cat -)")
PARSED=$(echo "$STARTUP" | sed -e 's/{{/${/g' -e 's/}}/}/g')
# 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@pelican~ \033[0m%s\n" "$PARSED"
# 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
exec env ${PARSED}
eval "$PARSED"

View File

@@ -1,4 +1,4 @@
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:11.0.13_8-jdk-focal
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:11-jdk-noble
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

View File

@@ -1,4 +1,4 @@
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:17-jdk-jammy
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:17-jdk-noble
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

View File

@@ -1,4 +1,4 @@
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:19-jdk-jammy
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:19-jdk-focal
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

View File

@@ -1,36 +1,36 @@
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk-jammy
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 \
lsof \
ca-certificates \
openssl \
git \
tar \
sqlite3 \
fontconfig \
tzdata \
iproute2 \
libfreetype6 \
tini \
zip \
unzip
## Setup user and working directory
RUN useradd -m -d /home/container -s /bin/bash 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"]
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk-noble
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 \
lsof \
ca-certificates \
openssl \
git \
tar \
sqlite3 \
fontconfig \
tzdata \
iproute2 \
libfreetype6 \
tini \
zip \
unzip
## Setup user and working directory
RUN useradd -m -d /home/container -s /bin/bash 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"]

36
java/22/Dockerfile Normal file
View File

@@ -0,0 +1,36 @@
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:22-jdk-noble
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 \
lsof \
ca-certificates \
openssl \
git \
tar \
sqlite3 \
fontconfig \
tzdata \
iproute2 \
libfreetype6 \
tini \
zip \
unzip
## Setup user and working directory
RUN useradd -m -d /home/container -s /bin/bash 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"]

View File

@@ -1,4 +1,4 @@
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:8u312-b07-jdk-focal
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:8-jdk-noble
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

View File

@@ -40,10 +40,10 @@ java -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' | eval echo "$(cat -)")
PARSED=$(echo "$STARTUP" | sed -e 's/{{/${/g' -e 's/}}/}/g')
# 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@pelican~ \033[0m%s\n" "$PARSED"
# 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}
eval "$PARSED"

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.3
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat \

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.4
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat \

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.5
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat \

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.6
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat \

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mariadb:10.7
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat \

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mariadb:11.2
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat \

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mariadb:11.3
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat \

View File

@@ -5,10 +5,10 @@ FROM --platform=$TARGETOS/$TARGETARCH mariadb:11.4
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat \
&& apt install -y netcat-traditional \
&& useradd -d /home/container -m container -s /bin/bash
USER container

19
mariadb/11.5/Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
# -----------------------------------------------------
# MariaDB Image for Pterodactyl
# -----------------------------------------------------
FROM --platform=$TARGETOS/$TARGETARCH mariadb:11.5
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat-traditional \
&& useradd -d /home/container -m container -s /bin/bash
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

19
mariadb/11.6/Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
# -----------------------------------------------------
# MariaDB Image for Pterodactyl
# -----------------------------------------------------
FROM --platform=$TARGETOS/$TARGETARCH mariadb:11.6
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat-traditional \
&& useradd -d /home/container -m container -s /bin/bash
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mongo:5-focal
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat iproute2 \

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mongo:6-jammy
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat iproute2 \

View File

@@ -5,7 +5,7 @@ FROM --platform=$TARGETOS/$TARGETARCH mongo:7-jammy
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat iproute2 \

View File

@@ -1,14 +1,14 @@
# ----------------------------------
# Environment: MongoDB
# ----------------------------------
FROM --platform=$TARGETOS/$TARGETARCH mongo:4-focal
FROM --platform=$TARGETOS/$TARGETARCH mongo:8-noble
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt install -y netcat iproute2 \
&& apt install -y netcat-openbsd iproute2 \
&& useradd -d /home/container -m container -s /bin/bash
USER container

View File

@@ -29,11 +29,7 @@ if [ ! -z "${SRCDS_APPID}" ]; then
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then
if [ "${STEAM_USER}" == "anonymous" ]; 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
numactl --physcpubind=+0 ./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
fi
./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +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

View File

@@ -4,7 +4,7 @@ LABEL author="Torsten Widmann" maintainer="support@goover.de"
RUN apt update \
&& apt -y upgrade
RUN apt install -y fontconfig dirmngr numactl
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

View File

@@ -2,18 +2,37 @@ FROM --platform=$TARGETOS/$TARGETARCH node:12-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \
&& useradd -m -d /home/container container
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN npm install npm@9.8.1 typescript ts-node @types/node --location=global
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@latest typescript ts-node @types/node
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", "--"]

View File

@@ -2,18 +2,37 @@ FROM --platform=$TARGETOS/$TARGETARCH node:14-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \
&& useradd -m -d /home/container container
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN npm install npm@9.8.1 typescript ts-node @types/node --location=global
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@latest typescript ts-node @types/node
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", "--"]

View File

@@ -2,18 +2,37 @@ FROM --platform=$TARGETOS/$TARGETARCH node:16-bookworm-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \
&& useradd -m -d /home/container container
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN npm install npm@9.8.1 typescript ts-node @types/node --location=global
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@9.x.x typescript ts-node @types/node
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", "--"]

View File

@@ -2,18 +2,37 @@ FROM --platform=$TARGETOS/$TARGETARCH node:17-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 libnss3 tini \
&& useradd -m -d /home/container container
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN npm install npm@8.11.0 typescript ts-node @types/node --location=global
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@8.x.x typescript ts-node @types/node
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", "--"]

View File

@@ -2,18 +2,42 @@ FROM --platform=$TARGETOS/$TARGETARCH node:18-bookworm-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \
&& useradd -m -d /home/container container
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN npm install npm@9.8.1 typescript ts-node @types/node --location=global
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@10.x.x typescript ts-node @types/node
# install pnpm
RUN npm install -g corepack
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
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", "--"]

View File

@@ -2,19 +2,43 @@ FROM --platform=$TARGETOS/$TARGETARCH node:19-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \
&& useradd -m -d /home/container container
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN npm install npm@9.8.1 typescript ts-node @types/node --location=global
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@9.x.x typescript ts-node @types/node
# install pnpm
RUN npm install -g corepack
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
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", "--"]
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

View File

@@ -2,18 +2,42 @@ FROM --platform=$TARGETOS/$TARGETARCH node:20-bookworm-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \
&& useradd -m -d /home/container container
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN npm install npm@latest typescript ts-node @types/node --location=global
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@latest typescript ts-node @types/node
# install pnpm
RUN npm install -g corepack
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
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", "--"]

View File

@@ -2,18 +2,42 @@ FROM --platform=$TARGETOS/$TARGETARCH node:21-bookworm-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \
&& apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool iputils-ping libnss3 tini \
&& useradd -m -d /home/container container
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN npm install npm@latest typescript ts-node @types/node --location=global
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@10.x.x typescript ts-node @types/node
# install pnpm
RUN npm install -g corepack@latest
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
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", "--"]

44
nodejs/22/Dockerfile Normal file
View File

@@ -0,0 +1,44 @@
FROM --platform=$TARGETOS/$TARGETARCH node:22-bookworm-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@latest typescript ts-node @types/node
# install pnpm
RUN npm install -g corepack
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

44
nodejs/23/Dockerfile Normal file
View File

@@ -0,0 +1,44 @@
FROM --platform=$TARGETOS/$TARGETARCH node:23-bookworm-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@latest typescript ts-node @types/node
# install pnpm
RUN npm install -g corepack
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

44
nodejs/24/Dockerfile Normal file
View File

@@ -0,0 +1,44 @@
FROM --platform=$TARGETOS/$TARGETARCH node:24-bookworm-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
# add container user and set stop signal
RUN useradd -m -d /home/container container
STOPSIGNAL SIGINT
RUN apt update \
&& apt -y install \
ffmpeg \
iproute2 \
git \
sqlite3 \
libsqlite3-dev \
python3 \
python3-dev \
ca-certificates \
dnsutils \
tzdata \
zip \
tar \
curl \
build-essential \
libtool \
iputils-ping \
libnss3 \
tini
RUN npm install --global npm@latest typescript ts-node @types/node
# install pnpm
RUN npm install -g corepack
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

View File

@@ -34,11 +34,11 @@ 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 -)")
PARSED=$(echo "$STARTUP" | sed -e 's/{{/${/g' -e 's/}}/}/g')
# 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@pelican~ \033[0m%s\n" "$PARSED"
# 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
exec env ${PARSED}
eval "$PARSED"

Some files were not shown because too many files have changed in this diff Show More