101 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
Michael (Parker) Parker
a8e9472a3e Merge pull request #245 from pelican-eggs/entrypoint_pelican
replace pterodactyl with pelican
2024-05-12 08:03:45 -04:00
Quinten
518d3e3206 replace pterodactyl with pelican 2024-05-12 10:53:54 +02:00
Michael (Parker) Parker
10a8a5041b Merge pull request #244 from pelican-eggs/update_os_workflow
update workflows
2024-05-11 16:05:31 -04:00
Michael (Parker) Parker
6a54f842dd update all images
make it so all images are pushed to parkervcp and pelican-eggs packages
2024-05-11 14:39:08 -04:00
Michael (Parker) Parker
135a318951 update base workflow
updates workflow for base images.

This is to test that the builder can push to other package locations.
2024-05-11 13:58:41 -04:00
Quinten
43616ff3f8 always install / update app id 1007 2024-04-29 18:59:06 +02:00
133 changed files with 2092 additions and 644 deletions

1
.gitattributes vendored Normal file
View File

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

View File

@@ -11,5 +11,5 @@
### New Image Submissions: ### 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? 2. [ ] Have you updated the README list to contain your new image?

View File

@@ -32,11 +32,12 @@ jobs:
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./apps/${{ matrix.app }} context: ./apps/${{ matrix.app }}
file: ./apps/${{ matrix.app }}/Dockerfile file: ./apps/${{ matrix.app }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +30,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./oses/${{ matrix.oses }} context: ./oses/${{ matrix.oses }}
file: ./oses/${{ matrix.oses }}/Dockerfile file: ./oses/${{ matrix.oses }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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 registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./bot/${{ matrix.tag }} context: ./bot/${{ matrix.tag }}
file: ./bot/${{ matrix.tag }}/Dockerfile file: ./bot/${{ matrix.tag }}/Dockerfile
@@ -50,7 +50,8 @@ jobs:
cache-to: type=local,dest=/tmp/.buildx-cache-new cache-to: type=local,dest=/tmp/.buildx-cache-new
push: true push: true
tags: | tags: |
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 - name: Move cache
run: | run: |
rm -rf /tmp/.buildx-cache rm -rf /tmp/.buildx-cache
@@ -75,11 +76,11 @@ jobs:
# registry: ghcr.io # registry: ghcr.io
# username: ${{ github.repository_owner }} # username: ${{ github.repository_owner }}
# password: ${{ secrets.REGISTRY_TOKEN }} # password: ${{ secrets.REGISTRY_TOKEN }}
# - uses: docker/build-push-action@v5 # - uses: docker/build-push-action@v6
# with: # with:
# context: ./bot/${{ matrix.tag }} # context: ./bot/${{ matrix.tag }}
# file: ./bot/${{ matrix.tag }}/Dockerfile # file: ./bot/${{ matrix.tag }}/Dockerfile
# platforms: linux/amd64 # platforms: linux/amd64
# push: true # push: true
# tags: | # 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,38 +1,39 @@
name: build box64 name: build box64
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
branches: branches:
- master - master
paths: paths:
- box64/** - box64/**
jobs: jobs:
push: push:
name: "yolks:${{ matrix.tag }}" name: "yolks:${{ matrix.tag }}"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
tag: tag:
- box64 - box64
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3 - uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3 - uses: docker/setup-buildx-action@v3
with: with:
buildkitd-flags: --debug buildkitd-flags: --debug
- uses: docker/login-action@v3 - uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./box64 context: ./box64
file: ./${{ matrix.tag }}/Dockerfile file: ./${{ matrix.tag }}/Dockerfile
platforms: linux/arm64 platforms: linux/arm64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/yolks:${{ matrix.tag }} ghcr.io/${{ github.repository_owner }}/yolks:${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:{0}', matrix.tag) || '' }}

View File

@@ -29,11 +29,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./bun context: ./bun
file: ./bun/${{ matrix.tag }}/Dockerfile file: ./bun/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +28,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./cassandra context: ./cassandra
file: ./cassandra/${{ matrix.tag }}/Dockerfile file: ./cassandra/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
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,43 +1,44 @@
name: build dart name: build dart
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: "0 0 * * 1" - cron: "0 0 * * 1"
push: push:
branches: branches:
- master - master
paths: paths:
- dart/** - dart/**
jobs: jobs:
push: push:
name: "yolks:dart_${{ matrix.tag }}" name: "yolks:dart_${{ matrix.tag }}"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
tag: tag:
- '2.17' - '2.17'
- '2.18' - '2.18'
- '2.19' - '2.19'
- '3.3' - '3.3'
- 'stable' - 'stable'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
# Setup QEMU for ARM64 Build # Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v3 - uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3 - uses: docker/setup-buildx-action@v3
with: with:
buildkitd-flags: --debug buildkitd-flags: --debug
- uses: docker/login-action@v3 - uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./dart context: ./dart
file: ./dart/${{ matrix.tag }}/Dockerfile file: ./dart/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/yolks:dart_${{ matrix.tag }} 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 - 6
- 7 - 7
- 8 - 8
- 9
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
# Setup QEMU for ARM64 Build # Setup QEMU for ARM64 Build
@@ -34,11 +35,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./dotnet context: ./dotnet
file: ./dotnet/${{ matrix.tag }}/Dockerfile file: ./dotnet/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +32,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./elixir context: ./elixir
file: ./elixir/${{ matrix.tag }}/Dockerfile file: ./elixir/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +31,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./erlang context: ./erlang
file: ./erlang/${{ matrix.tag }}/Dockerfile file: ./erlang/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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 - arma3
- dayz - dayz
- mohaa - mohaa
- rust
- samp - samp
- source - source
- valheim - valheim
- thebattleforwesnoth - thebattleforwesnoth
- zandronum
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -35,14 +37,15 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./games/${{ matrix.game }} context: ./games/${{ matrix.game }}
file: ./games/${{ matrix.game }}/Dockerfile file: ./games/${{ matrix.game }}/Dockerfile
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
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: pushAll:
name: "games_All:${{ matrix.game }}" name: "games_All:${{ matrix.game }}"
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -66,11 +69,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./games/${{ matrix.game }} context: ./games/${{ matrix.game }}
file: ./games/${{ matrix.game }}/Dockerfile file: ./games/${{ matrix.game }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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.20'
- '1.21' - '1.21'
- '1.22' - '1.22'
- '1.23'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3 - uses: docker/setup-buildx-action@v3
@@ -35,11 +36,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./go context: ./go
file: ./go/${{ matrix.tag }}/Dockerfile file: ./go/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
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,11 +30,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./installers context: ./installers
file: ./installers/${{ matrix.tag }}/Dockerfile file: ./installers/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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 - 17
- 19 - 19
- 21 - 21
- 22
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3 - uses: docker/setup-qemu-action@v3
@@ -36,11 +37,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./java context: ./java
file: ./java/${{ matrix.tag }}/Dockerfile file: ./java/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
ghcr.io/parkervcp/yolks:java_${{ matrix.tag }} ghcr.io/${{ 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.2'
- '11.3' - '11.3'
- '11.4' - '11.4'
- '11.5'
- '11.6'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3 - uses: docker/setup-qemu-action@v3
@@ -36,11 +38,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./mariadb context: ./mariadb
file: ./mariadb/${{ matrix.tag }}/Dockerfile file: ./mariadb/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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 fail-fast: false
matrix: matrix:
tag: tag:
- 4
- 5 - 5
- 6 - 6
- 7 - 7
- 8
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3 - uses: docker/setup-qemu-action@v3
@@ -32,11 +32,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./mongodb context: ./mongodb
file: ./mongodb/${{ matrix.tag }}/Dockerfile file: ./mongodb/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +27,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./mono context: ./mono
file: ./mono/${{ matrix.tag }}/Dockerfile file: ./mono/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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 - 19
- 20 - 20
- 21 - 21
- 22
- 23
- 24
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
# Setup QEMU for ARM64 Build # Setup QEMU for ARM64 Build
@@ -36,11 +39,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./nodejs context: ./nodejs
file: ./nodejs/${{ matrix.tag }}/Dockerfile file: ./nodejs/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +35,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./postgres context: ./postgres
file: ./postgres/${{ matrix.tag }}/Dockerfile file: ./postgres/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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.10'
- '3.11' - '3.11'
- '3.12' - '3.12'
- '3.13'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
# Setup QEMU for ARM64 Build # Setup QEMU for ARM64 Build
@@ -35,11 +36,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./python context: ./python
file: ./python/${{ matrix.tag }}/Dockerfile file: ./python/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +31,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./redis context: ./redis
file: ./redis/${{ matrix.tag }}/Dockerfile file: ./redis/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +31,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./rust context: ./rust
file: ./rust/${{ matrix.tag }}/Dockerfile file: ./rust/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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,11 +32,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./steamcmd context: ./steamcmd
file: ./steamcmd/${{ matrix.distro }}/Dockerfile file: ./steamcmd/${{ matrix.distro }}/Dockerfile
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
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,14 +27,16 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./voice/${{ matrix.tag }} context: ./voice/${{ matrix.tag }}
file: ./voice/${{ matrix.tag }}/Dockerfile file: ./voice/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
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: pushx64_arm64:
name: "yolks:voice_${{ matrix.tag }}" name: "yolks:voice_${{ matrix.tag }}"
@@ -57,11 +59,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./voice/${{ matrix.tag }} context: ./voice/${{ matrix.tag }}
file: ./voice/${{ matrix.tag }}/Dockerfile file: ./voice/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
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 fail-fast: false
matrix: matrix:
tag: tag:
- "7"
- "8"
- "9"
- "10"
- latest - latest
- devel - devel
- staging - staging
@@ -29,11 +33,12 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v6
with: with:
context: ./wine context: ./wine
file: ./wine/${{ matrix.tag }}/Dockerfile file: ./wine/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
tags: | tags: |
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` * `ghcr.io/parkervcp/yolks:dotnet_7`
* [`dotnet8.0`](/dotnet/8) * [`dotnet8.0`](/dotnet/8)
* `ghcr.io/parkervcp/yolks:dotnet_8` * `ghcr.io/parkervcp/yolks:dotnet_8`
* [`dotnet9.0`](/dotnet/9)
* `ghcr.io/parkervcp/yolks:dotnet_9`
### [Elixir](/elixir) ### [Elixir](/elixir)
@@ -131,9 +133,11 @@ is tagged correctly.
* [`minetest`](/games/minetest) * [`minetest`](/games/minetest)
* `ghcr.io/parkervcp/games:minetest` * `ghcr.io/parkervcp/games:minetest`
* [`mohaa`](games/mohaa) * [`mohaa`](games/mohaa)
* `ghcr.io/pterodactyl/games:mohaa` * `ghcr.io/parkervcp/games:mohaa`
* [`Multi Theft Auto: San Andreas`](games/mta) * [`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) * [`samp`](/games/samp)
* `ghcr.io/parkervcp/games:samp` * `ghcr.io/parkervcp/games:samp`
* [`source`](/games/source) * [`source`](/games/source)
@@ -142,6 +146,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/games:thebattleforwesnoth` * `ghcr.io/parkervcp/games:thebattleforwesnoth`
* [`valheim`](/games/valheim) * [`valheim`](/games/valheim)
* `ghcr.io/parkervcp/games:valheim` * `ghcr.io/parkervcp/games:valheim`
* [`zandronum`](/games/zandronum)
* `ghcr.io/parkervcp/games:zandronum`
### [Golang](/go) ### [Golang](/go)
@@ -163,6 +169,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:go_1.21` * `ghcr.io/parkervcp/yolks:go_1.21`
* [`go1.22`](/go/1.22) * [`go1.22`](/go/1.22)
* `ghcr.io/parkervcp/yolks:go_1.22` * `ghcr.io/parkervcp/yolks:go_1.22`
* [`go1.23`](/go/1.23)
* `ghcr.io/parkervcp/yolks:go_1.23`
### [Java](/java) ### [Java](/java)
@@ -178,6 +186,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:java_19` * `ghcr.io/parkervcp/yolks:java_19`
* [`java21`](/java/21) * [`java21`](/java/21)
* `ghcr.io/parkervcp/yolks:java_21` * `ghcr.io/parkervcp/yolks:java_21`
* [`java22`](/java/22)
* `ghcr.io/parkervcp/yolks:java_22`
### [MariaDB](/mariadb) ### [MariaDB](/mariadb)
@@ -197,17 +207,21 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:mariadb_11.3` * `ghcr.io/parkervcp/yolks:mariadb_11.3`
* [`MariaDB 11.4`](/mariadb/11.4) * [`MariaDB 11.4`](/mariadb/11.4)
* `ghcr.io/parkervcp/yolks: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](/mongodb)
* [`MongoDB 4`](/mongodb/4)
* `ghcr.io/parkervcp/yolks:mongodb_4`
* [`MongoDB 5`](/mongodb/5) * [`MongoDB 5`](/mongodb/5)
* `ghcr.io/parkervcp/yolks:mongodb_5` * `ghcr.io/parkervcp/yolks:mongodb_5`
* [`MongoDB 6`](/mongodb/6) * [`MongoDB 6`](/mongodb/6)
* `ghcr.io/parkervcp/yolks:mongodb_6` * `ghcr.io/parkervcp/yolks:mongodb_6`
* [`MongoDB 7`](/mongodb/7) * [`MongoDB 7`](/mongodb/7)
* `ghcr.io/parkervcp/yolks:mongodb_7` * `ghcr.io/parkervcp/yolks:mongodb_7`
* [`MongoDB 8`](/mongodb/8)
* `ghcr.io/parkervcp/yolks:mongodb_8`
### [Mono](/mono) ### [Mono](/mono)
@@ -232,7 +246,13 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:nodejs_20` * `ghcr.io/parkervcp/yolks:nodejs_20`
* [`node21`](/nodejs/21) * [`node21`](/nodejs/21)
* `ghcr.io/parkervcp/yolks: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) ### [PostgreSQL](/postgres)
* [`Postgres 9`](/postgres/9) * [`Postgres 9`](/postgres/9)
@@ -262,6 +282,8 @@ is tagged correctly.
* `ghcr.io/parkervcp/yolks:python_3.11` * `ghcr.io/parkervcp/yolks:python_3.11`
* [`python3.12`](/python/3.12) * [`python3.12`](/python/3.12)
* `ghcr.io/parkervcp/yolks:python_3.12` * `ghcr.io/parkervcp/yolks:python_3.12`
* [`python3.13`](/python/3.13)
* `ghcr.io/parkervcp/yolks:python_3.13`
### [Redis](/redis) ### [Redis](/redis)
@@ -304,6 +326,10 @@ is tagged correctly.
### [Wine](/wine) ### [Wine](/wine)
* [`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_latest`
* `ghcr.io/parkervcp/yolks:wine_devel` * `ghcr.io/parkervcp/yolks:wine_devel`
* `ghcr.io/parkervcp/yolks:wine_staging` * `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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
# general packages # general packages

View File

@@ -3,7 +3,7 @@ FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL org.opencontainers.image.authors="i2007@damw.eu" LABEL org.opencontainers.image.authors="i2007@damw.eu"
LABEL version="1.0" LABEL version="1.0"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
# Install Dependencies # Install Dependencies
RUN apt update \ RUN apt update \
@@ -14,8 +14,8 @@ RUN apt update \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
#RUN python3 -m pip install requests #RUN python3 -m pip install requests
ENV LANG C.UTF-8 ENV LANG=C.UTF-8
ENV LC_ALL C.UTF-8 ENV LC_ALL=C.UTF-8
USER container USER container
ENV USER=container HOME=/home/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" LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
## Update base packages ## Update base packages
RUN apt update \ RUN apt update \

View File

@@ -12,27 +12,27 @@ export INTERNAL_IP
cd /home/container || exit 1 cd /home/container || exit 1
# Print Java version # Print Java version
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mjava -version\n" printf "\033[1m\033[33mcontainer@pelican~ \033[0mjava -version\n"
java -version java -version
# Print Python version # Print Python version
if command -v python &> /dev/null if command -v python &> /dev/null
then then
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython --version\n" printf "\033[1m\033[33mcontainer@pelican~ \033[0mpython --version\n"
python --version python --version
else else
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython3 --version\n" printf "\033[1m\033[33mcontainer@pelican~ \033[0mpython3 --version\n"
python3 --version python3 --version
fi fi
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell # Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
# variable format of "${VARIABLE}" before evaluating the string and automatically # variable format of "${VARIABLE}" before evaluating the string and automatically
# replacing the values. # 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 # Display the command we're running in the output, and then execute it with eval
# from the container itself. printf "\033[1m\033[33mcontainer@pelican~ \033[0m"
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED" echo "$PARSED"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
exec env ${PARSED} eval "$PARSED"

View File

@@ -1,18 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH dart:2.17 FROM --platform=$TARGETOS/$TARGETARCH dart:2.17
LABEL author="Alden Bansemer" maintainer="alden@knoban.com" LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \ RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \ && apt -y install iproute2 git ca-certificates tzdata tini \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] CMD ["/entrypoint.sh"]

View File

@@ -1,18 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH dart:2.18 FROM --platform=$TARGETOS/$TARGETARCH dart:2.18
LABEL author="Alden Bansemer" maintainer="alden@knoban.com" LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \ RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \ && apt -y install iproute2 git ca-certificates tzdata tini \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] CMD ["/entrypoint.sh"]

View File

@@ -1,18 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH dart:2.19 FROM --platform=$TARGETOS/$TARGETARCH dart:2.19
LABEL author="Alden Bansemer" maintainer="alden@knoban.com" LABEL author="Alden Bansemer" maintainer="alden@knoban.com"
RUN apt update \ RUN apt update \
&& apt -y install iproute2 git ca-certificates tzdata tini \ && apt -y install iproute2 git ca-certificates tzdata tini \
&& useradd -m -d /home/container container && useradd -m -d /home/container container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] 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" LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt upgrade -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" LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt upgrade -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" LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt upgrade -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" LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt upgrade -y \ && apt upgrade -y \

View File

@@ -1,25 +1,25 @@
FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="info@goover.de" LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt upgrade -y \ && apt upgrade -y \
&& apt install -y apt-transport-https wget curl iproute2 libgdiplus tini \ && apt install -y apt-transport-https wget curl iproute2 libgdiplus tini \
&& wget https://dot.net/v1/dotnet-install.sh \ && 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')" \ && 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 \ && chmod +x dotnet-install.sh \
&& ./dotnet-install.sh -i /usr/share -v $D_V \ && ./dotnet-install.sh -i /usr/share -v $D_V \
&& ln -s /usr/share/dotnet /usr/bin/dotnet && ln -s /usr/share/dotnet /usr/bin/dotnet
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] 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" LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt upgrade -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

@@ -9,7 +9,7 @@ export INTERNAL_IP
export DOTNET_ROOT=/usr/share/ export DOTNET_ROOT=/usr/share/
# print the dotnet version on startup # print the dotnet version on startup
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mdotnet --version\n" printf "\033[1m\033[33mcontainer@pelican~ \033[0mdotnet --version\n"
dotnet --version dotnet --version
# Replace Startup Variables # Replace Startup Variables

View File

@@ -1,16 +1,16 @@
FROM --platform=$TARGETOS/$TARGETARCH erlang:25-alpine FROM --platform=$TARGETOS/$TARGETARCH erlang:25-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \ RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \
&& adduser -D -h /home/container container && adduser -D -h /home/container container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh COPY ./../entrypoint.sh /entrypoint.sh
CMD [ "/bin/ash", "/entrypoint.sh" ] CMD [ "/bin/ash", "/entrypoint.sh" ]

View File

@@ -1,16 +1,16 @@
FROM --platform=$TARGETOS/$TARGETARCH erlang:26-alpine FROM --platform=$TARGETOS/$TARGETARCH erlang:26-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de" LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \ RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \
&& adduser -D -h /home/container container && adduser -D -h /home/container container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh COPY ./../entrypoint.sh /entrypoint.sh
CMD [ "/bin/ash", "/entrypoint.sh" ] CMD [ "/bin/ash", "/entrypoint.sh" ]

View File

@@ -10,16 +10,16 @@ export INTERNAL_IP
cd /home/container || exit 1 cd /home/container || exit 1
# Print Erlang's version # Print Erlang's version
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0merl -noshell -eval 'erlang:display(erlang:system_info(system_version))' -eval 'init:stop()'\n" printf "\033[1m\033[33mcontainer@pelican~ \033[0merl -noshell -eval 'erlang:display(erlang:system_info(system_version))' -eval 'init:stop()'\n"
erl -noshell -eval 'erlang:display(erlang:system_info(system_version))' -eval 'init:stop()' erl -noshell -eval 'erlang:display(erlang:system_info(system_version))' -eval 'init:stop()'
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell # Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
# variable format of "${VARIABLE}" before evaluating the string and automatically # variable format of "${VARIABLE}" before evaluating the string and automatically
# replacing the values. # 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 # Display the command we're running in the output, and then execute it with eval
# from the container itself. printf "\033[1m\033[33mcontainer@pelican~ \033[0m"
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED" echo "$PARSED"
# shellcheck disable=SC2086 # 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" 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 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 \ RUN wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \
&& apt update -y \ && 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 \ RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales && dpkg-reconfigure --frontend noninteractive locales
@@ -32,4 +32,4 @@ STOPSIGNAL SIGINT
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] CMD ["/entrypoint.sh"]

View File

@@ -1,6 +1,6 @@
FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim 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.source="https://github.com/parkervcp/yolks"
LABEL org.opencontainers.image.licenses=MIT 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 # Error checking for SteamCMD
steamcmdExitCode=${PIPESTATUS[0]} steamcmdExitCode=${PIPESTATUS[0]}
loggedErrors=$(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL\|steamservice\|thread") # Catch errors (ignore setlocale, SDL, steamservice, thread priority, and libcurl warnings)
if [[ -n ${loggedErrors} ]]; then # Catch errors (ignore setlocale, SDL, steamservice, and thread priority warnings) loggedErrors=$(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL\|steamservice\|thread\|libcurl")
if [[ -n ${loggedErrors} ]]; then
# Soft errors # Soft errors
if [[ -n $(grep -i "Timeout downloading item" "${STEAMCMD_LOG}") ]]; then # Mod download timeout 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})" 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 done
fi 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 # Clear HC cache, if specified
if [[ ${CLEAR_CACHE} == "1" ]]; then if [[ ${CLEAR_CACHE} == "1" ]]; then
echo -e "\n${GREEN}[STARTUP]: ${CYAN}Clearing Headless Client profiles cache...${NC}" echo -e "\n${GREEN}[STARTUP]: ${CYAN}Clearing Headless Client profiles cache...${NC}"
@@ -395,7 +402,11 @@ fi
# Start the Server # Start the Server
echo -e "\n${GREEN}[STARTUP]:${NC} Starting server with the following startup command:" echo -e "\n${GREEN}[STARTUP]:${NC} Starting server with the following startup command:"
echo -e "${CYAN}${modifiedStartup}${NC}\n" 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 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}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 LABEL org.opencontainers.image.licenses=MIT
## Update base packages and install dependencies ## Update base packages and install dependencies
@@ -17,7 +17,6 @@ RUN dpkg --add-architecture i386 \
iproute2 \ iproute2 \
gettext-base \ gettext-base \
ca-certificates \ ca-certificates \
numactl \
libssl-dev \ libssl-dev \
lib32gcc-s1 \ lib32gcc-s1 \
libsdl2-2.0-0 \ libsdl2-2.0-0 \
@@ -29,11 +28,17 @@ RUN dpkg --add-architecture i386 \
libnss-wrapper \ libnss-wrapper \
tini 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 ## Configure locale
RUN update-locale lang=en_US.UTF-8 \ RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales && dpkg-reconfigure --frontend noninteractive locales
## 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 ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group
RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \ RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& chgrp 0 ${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 ENV USER=container HOME=/home/container
WORKDIR /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 COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] CMD ["/entrypoint.sh"]

View File

@@ -1,15 +1,16 @@
#!/bin/bash #!/bin/bash
## File: Pterodactyl DayZ SA Image - entrypoint.sh ## File: DayZ Image - entrypoint.sh
## Author: David Wolfe (Red-Thirten) ## Author: David Wolfe (Red-Thirten)
## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/) ## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/)
## Date: 2022/11/27 ## Date: 2024/06/05
## License: MIT License ## License: MIT License
## === CONSTANTS === ## === CONSTANTS ===
STEAMCMD_DIR="./steamcmd" # SteamCMD's directory containing steamcmd.sh 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 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 # Color Codes
CYAN='\033[0;36m' CYAN='\033[0;36m'
@@ -45,14 +46,16 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id]
# Check if updating server or mod # Check if updating server or mod
if [[ $1 == 0 ]]; then # Server if [[ $1 == 0 ]]; then # Server
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 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 fi
# Error checking for SteamCMD # Error checking for SteamCMD
steamcmdExitCode=${PIPESTATUS[0]} 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 # Soft errors
if [[ -n $(grep -i "Timeout downloading item" "${STEAMCMD_LOG}") ]]; then # Mod download timeout 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})" 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 # Move the downloaded mod to the root directory, and replace existing mod if needed
mkdir -p ./@$2 mkdir -p ./@$2
rm -rf ./@$2/* rm -rf ./@$2/*
mv -f ./Steam/steamapps/workshop/content/$GAME_ID/$2/* ./@$2 mv -f ${WORKSHOP_DIR}/content/$GAME_ID/$2/* ./@$2
rm -d ./Steam/steamapps/workshop/content/$GAME_ID/$2 rm -d ${WORKSHOP_DIR}/content/$GAME_ID/$2
# Make the mods contents all lowercase # Make the mods contents all lowercase
ModsLowercase @$2 ModsLowercase @$2
# Move any .bikey's to the keys directory # 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 if [[ -n $latestUpdate ]] && [[ $latestUpdate =~ ^[0-9]+$ ]]; then # Notify last update date, if valid
echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}" echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}"
fi 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" echo -e "\tAttempting mod update/download via SteamCMD...\n"
RunSteamCMD 1 $modID RunSteamCMD 1 $modID
fi fi
@@ -280,6 +288,6 @@ echo -e "${CYAN}${modifiedStartup}${NC}\n"
${modifiedStartup} ${modifiedStartup}
if [ $? -ne 0 ]; then 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 exit 1
fi fi

View File

@@ -1,16 +1,16 @@
FROM --platform=$TARGETOS/$TARGETARCH ubuntu:22.04 FROM --platform=$TARGETOS/$TARGETARCH ubuntu:22.04
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y curl ca-certificates openssl git tar gnupg2 sqlite3 fontconfig tzdata iproute2 libfreetype6 software-properties-common \ && apt install -y curl ca-certificates openssl git tar gnupg2 sqlite3 fontconfig tzdata iproute2 libfreetype6 software-properties-common \
&& useradd -d /home/container -m container && useradd -d /home/container -m container
RUN add-apt-repository -y ppa:minetestdevs/stable RUN add-apt-repository -y ppa:minetestdevs/stable
RUN apt update && apt -y install minetest RUN apt update && apt -y install minetest
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh COPY ./entrypoint.sh /entrypoint.sh
CMD [ "/bin/bash", "/entrypoint.sh" ] CMD [ "/bin/bash", "/entrypoint.sh" ]

View File

@@ -12,7 +12,7 @@ export INTERNAL_IP
cd /home/container || exit 1 cd /home/container || exit 1
# Print minetest version # Print minetest version
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mminetest --version\n" printf "\033[1m\033[33mcontainer@pelican~ \033[0mminetest --version\n"
minetest --version minetest --version
# Replace Startup Variables # Replace Startup Variables

View File

@@ -1,23 +1,42 @@
FROM --platform=$TARGETOS/$TARGETARCH ubuntu:20.04 FROM --platform=$TARGETOS/$TARGETARCH ubuntu:24.04
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
## add container user ## add container user
RUN useradd -m -d /home/container -s /bin/bash container RUN useradd -m -d /home/container -s /bin/bash container
## update base packages ## update base packages
RUN apt update \ RUN apt update && \
&& apt upgrade -y apt upgrade -y
## install dependencies ## install dependencies
RUN apt install -y iproute2 tar libssl1.1 curl git default-libmysqlclient-dev libmysqlclient-dev libreadline-gplv2-dev libncurses5-dev libncursesw5-dev \ RUN apt install -y iproute2 \
libtool zip unzip libncurses5 libncursesw5 python3 openssl locales ffmpeg apt-transport-https libc6 binutils xz-utils liblua5.1-0 curl \
git \
## configure locale zip \
RUN update-locale lang=en_US.UTF-8 \ unzip \
&& dpkg-reconfigure --frontend noninteractive locales tar \
xz-utils \
WORKDIR /home/container apt-transport-https \
openssl \
COPY ./entrypoint.sh /entrypoint.sh 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" ] 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 FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com" LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com"
RUN apt update \ RUN apt update \
&& apt -y upgrade && apt -y upgrade
RUN dpkg --add-architecture i386 \ RUN dpkg --add-architecture i386 \
&& apt update \ && apt update \
&& apt upgrade -y \ && 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 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 \ && apt install -y libtbb12:i386 libtbb-dev:i386 libicu-dev:i386 \
&& useradd -d /home/container -m container && useradd -d /home/container -m container
RUN mkdir -p /run/systemd && echo 'docker' > /run/systemd/container RUN mkdir -p /run/systemd && echo 'docker' > /run/systemd/container
RUN rm -rf /var/lib/apt/lists/* RUN rm -rf /var/lib/apt/lists/*
# Temp fix for things that still need libssl1.1 32 bit
USER container RUN if [ "$(uname -m)" = "x86_64" ]; then \
ENV USER=container HOME=/home/container wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_i386.deb && \
WORKDIR /home/container dpkg -i libssl1.1_1.1.0g-2ubuntu4_i386.deb && \
rm libssl1.1_1.1.0g-2ubuntu4_i386.deb; \
STOPSIGNAL SIGINT fi
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh USER container
RUN chmod +x /entrypoint.sh ENV USER=container HOME=/home/container
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] WORKDIR /home/container
CMD ["/entrypoint.sh"]
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 \ RUN dpkg --add-architecture i386 \
&& apt update \ && apt update \
&& apt upgrade -y \ && 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 \ && apt install -y \
&& useradd -m -d /home/container container 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/ \ 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 \ && 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 \ && tar xvf rcon.tar.gz \
&& mv rcon-0.10.3-amd64_linux/rcon /usr/local/bin/ && mv rcon-0.10.3-amd64_linux/rcon /usr/local/bin/
# Temp fix for things that still need libssl1.1 # Temp fix for things that still need libssl1.1
RUN if [ "$(uname -m)" = "x86_64" ]; then \ 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 && \ 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 && \ dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb && \
rm libssl1.1_1.1.0g-2ubuntu4_amd64.deb; \ rm libssl1.1_1.1.0g-2ubuntu4_amd64.deb; \
fi 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT STOPSIGNAL SIGINT
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] CMD ["/entrypoint.sh"]

View File

@@ -52,11 +52,7 @@ fi
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server # Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then if [ ! -z ${SRCDS_APPID} ]; then
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 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
./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
else else
echo -e "No appid set. Starting Server" echo -e "No appid set. Starting Server"
fi fi

View File

@@ -2,7 +2,7 @@ FROM --platform=$TARGETOS/$TARGETARCH ubuntu:22.04
LABEL author="Daniel Barton" maintainer="danny6167@gmail.com" LABEL author="Daniel Barton" maintainer="danny6167@gmail.com"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
## add container user ## add container user
RUN useradd -m -d /home/container -s /bin/bash container 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 if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server # Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then if [ ! -z ${SRCDS_APPID} ]; then
./steamcmd/steamcmd.sh +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 else
echo -e "No appid set. Starting Server" echo -e "No appid set. Starting Server"
fi 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 # Copyright (c) 2021 Matthew Penner
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy # Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal # of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights # in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is # copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions: # furnished to do so, subject to the following conditions:
# #
# The above copyright notice and this permission notice shall be included in all # The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software. # copies or substantial portions of the Software.
# #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # 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 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE. # SOFTWARE.
# #
FROM --platform=$TARGETOS/$TARGETARCH golang:1.22-alpine FROM --platform=$TARGETOS/$TARGETARCH golang:1.22-alpine
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates tzdata \ RUN apk add --update --no-cache ca-certificates tzdata \
&& adduser -D -h /home/container container && adduser -D -h /home/container container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh COPY ./../entrypoint.sh /entrypoint.sh
CMD [ "/bin/ash", "/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

@@ -34,16 +34,16 @@ export INTERNAL_IP
cd /home/container || exit 1 cd /home/container || exit 1
# Print Go version # Print Go version
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mgo version\n" printf "\033[1m\033[33mcontainer@pelican~ \033[0mgo version\n"
go version go version
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell # Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
# variable format of "${VARIABLE}" before evaluating the string and automatically # variable format of "${VARIABLE}" before evaluating the string and automatically
# replacing the values. # 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 # Display the command we're running in the output, and then execute it with eval
# from the container itself. printf "\033[1m\033[33mcontainer@pelican~ \033[0m"
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED" echo "$PARSED"
# shellcheck disable=SC2086 # 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" 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" 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

View File

@@ -1,36 +1,36 @@
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk-jammy FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk-noble
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT LABEL org.opencontainers.image.licenses=MIT
RUN apt update -y \ RUN apt update -y \
&& apt install -y \ && apt install -y \
curl \ curl \
lsof \ lsof \
ca-certificates \ ca-certificates \
openssl \ openssl \
git \ git \
tar \ tar \
sqlite3 \ sqlite3 \
fontconfig \ fontconfig \
tzdata \ tzdata \
iproute2 \ iproute2 \
libfreetype6 \ libfreetype6 \
tini \ tini \
zip \ zip \
unzip unzip
## Setup user and working directory ## Setup user and working directory
RUN useradd -m -d /home/container -s /bin/bash container RUN useradd -m -d /home/container -s /bin/bash container
USER container USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"

View File

@@ -34,16 +34,16 @@ export INTERNAL_IP
cd /home/container || exit 1 cd /home/container || exit 1
# Print Java version # Print Java version
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mjava -version\n" printf "\033[1m\033[33mcontainer@pelican~ \033[0mjava -version\n"
java -version java -version
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell # Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
# variable format of "${VARIABLE}" before evaluating the string and automatically # variable format of "${VARIABLE}" before evaluating the string and automatically
# replacing the values. # 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 # Display the command we're running in the output, and then execute it with eval
# from the container itself. printf "\033[1m\033[33mcontainer@pelican~ \033[0m"
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED" echo "$PARSED"
# shellcheck disable=SC2086 # 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat \ && apt install -y netcat-traditional \
&& useradd -d /home/container -m container -s /bin/bash && useradd -d /home/container -m container -s /bin/bash
USER container 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat iproute2 \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat iproute2 \ && 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \ RUN apt update -y \
&& apt install -y netcat iproute2 \ && apt install -y netcat iproute2 \

View File

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

View File

@@ -29,11 +29,7 @@ if [ ! -z "${SRCDS_APPID}" ]; then
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server # Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then if [ ! -z ${SRCDS_APPID} ]; then
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 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
./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
else else
echo -e "No appid set. Starting Server" echo -e "No appid set. Starting Server"
fi fi

View File

@@ -4,7 +4,7 @@ LABEL author="Torsten Widmann" maintainer="support@goover.de"
RUN apt update \ RUN apt update \
&& apt -y upgrade && 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 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 sh -c 'echo "deb https://download.mono-project.com/repo/debian stable-buster main" > /etc/apt/sources.list.d/mono-official-stable.list'
RUN apt update RUN apt update

View File

@@ -2,18 +2,37 @@ FROM --platform=$TARGETOS/$TARGETARCH node:12-bullseye-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ # add container user and set stop signal
&& 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 useradd -m -d /home/container container
&& 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ # add container user and set stop signal
&& 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 useradd -m -d /home/container container
&& 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ # add container user and set stop signal
&& 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 useradd -m -d /home/container container
&& 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ # add container user and set stop signal
&& 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 \ RUN useradd -m -d /home/container container
&& 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ # add container user and set stop signal
&& 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 useradd -m -d /home/container container
&& 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ # add container user and set stop signal
&& 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 useradd -m -d /home/container container
&& 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"] 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ # add container user and set stop signal
&& 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 useradd -m -d /home/container container
&& 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] 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" LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apt update \ # add container user and set stop signal
&& 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 useradd -m -d /home/container container
&& 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 USER container
ENV USER=container HOME=/home/container ENV USER=container HOME=/home/container
WORKDIR /home/container WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"] 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"]

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