567 Commits

Author SHA1 Message Date
Red-Thirten
a917ca296e Remove numactl & Dockerfile Cleanup
- 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-25 16:11:18 -07: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
Josh
b177dcc194 Add MariaDB 11.3 & 11.4 (#241)
* Update mariadb.yml

Add '11.3' and '11.4'

* Update README.md

* Create Dockerfile - MariaDB 11.3

* Create Dockerfile - MariaDB 11.4
2024-05-10 10:14:54 +02:00
Quinten
a297000f97 Merge pull request #243 from gOOvER/update-mono
update wine mono to 9.1.0
2024-05-08 17:16:19 +02:00
gOOvER
f30bbd3563 update wine mono to 9.1.0 2024-05-08 16:56:39 +02:00
Quinten
43616ff3f8 always install / update app id 1007 2024-04-29 18:59:06 +02:00
Bae Joon Hoo
98324b8523 Install pkg-config (#239)
add `pkg-config` to the rust images for openssl-sys
2024-04-29 18:50:45 +02:00
mattman107
3798abab4e The Battle For Wesnoth (#237)
* Create Dockerfile

* Create entrypoint.sh

* Update games.yml

* Update README.md

* Update Dockerfile

* Update Dockerfile

* Rename Dockerfile to Dockerfile

* Rename entrypoint.sh to entrypoint.sh

* Update README.md

* Update games.yml

* Update README.md

* Update Dockerfile

* Update Dockerfile

make it actually work.
2024-04-19 16:10:42 +02:00
Michael (Parker) Parker
8671cd15cb Merge pull request #233 from parkervcp/debian12-hotfix
fix the builds
2024-04-07 08:46:36 -04:00
Quinten
876e1d867f wget... 2024-04-05 22:38:04 +02:00
Quinten
641796f164 libssl1.1 on source and steamcmd:debian 2024-04-05 22:30:44 +02:00
Stigstille
0d8a7c735b Add zip/unzip to java (#235)
* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile
2024-04-04 19:56:23 +02:00
Quinten
ceb90bb701 last time or I just close you 2024-04-04 14:31:15 +02:00
Quinten
d7abc65171 now you will build, silly me 2024-04-04 14:28:01 +02:00
Quinten
d8ca82f3e3 Fix arm64 builds? 2024-04-04 14:22:43 +02:00
Quinten
dc3100203a yea libssl1.1 2024-04-04 14:17:06 +02:00
Quinten
c69e507b54 debian: Temp fix for libicu66.1 for RAGE-MP 2024-04-04 12:26:34 +02:00
Poseidon
c80ad9aa0a Update Dockerfile (#234)
* Update Dockerfile

There was a mistake made here. This is the 3.12 dockerfile but you are using python 3.7. This should fix that

* also fix 3.7

---------

Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
2024-04-04 11:57:50 +02:00
Quinten
bedebb972e keep alt:v like it is, dotnet 5 is EOL 2024-04-04 09:29:00 +02:00
Quinten
6e7cd78e7c install back dotnet 5 alt:v 2024-04-04 09:25:21 +02:00
Quinten
315ee7cd14 request is not more needed for sinusbot 2024-04-04 09:21:48 +02:00
Quinten
dc5dbddbcf remove dotnet 5 from alt:V 2024-04-04 09:08:46 +02:00
Quinten
b442252652 fix sinusbot 2024-04-04 09:03:05 +02:00
Quinten
d7f798c383 fix the builds 2024-04-04 08:56:29 +02:00
Michael (Parker) Parker
66769a165b Merge pull request #227 from parkervcp/steamcmd_dotnet8
steamcmd: dotnet 8
2024-04-03 22:00:56 -04:00
Michael (Parker) Parker
9b54aaed05 Merge pull request #230 from parkervcp/Debian-bookworm
Move to Debian 12 and fix Uptime Kuma
2024-04-03 21:23:45 -04:00
Michael (Parker) Parker
528f25cf9a Merge pull request #231 from parkervcp/wine-mono-9
Update wine mono version to 9
2024-04-03 16:10:44 -04:00
Quinten
3386391d85 Update wine mono version to 9 2024-04-03 18:15:25 +02:00
Quinten
82df2cdb73 more needed packages for Uptime Kuma 2024-04-02 16:06:38 +02:00
Quinten
7def6d17d9 use mongo 7 for jammy 2024-04-02 16:05:42 +02:00
Quinten
b3f8b0844a Move to Debian 12 and fix Uptime Kuma 2024-04-02 15:50:15 +02:00
Alden Bansemer
e702e788be Add 3.3/stable dart yolks (#229)
* Add 3.3/stable dart images

* Update dart.yml

* Revert dart.yml
2024-04-02 12:24:16 +02:00
Quinten
851d94b37a steamcmd: dotnet 8 2024-03-30 10:34:30 +01:00
Michael (Parker) Parker
c26a4d7ab8 Merge pull request #225 from parkervcp/mumble
Update mumble to use alpine edge
2024-03-16 08:36:24 -04:00
Michael (Parker) Parker
b7509b52c6 Merge pull request #226 from aleforge/proton_8
Adding Proton 8 Image
2024-03-12 14:24:21 -04:00
wraith1200
ef82e69547 adding proton 8 image 2024-03-12 13:57:20 -04:00
Quinten
4a27d2895b Print mumble server version 2024-03-06 10:30:39 +01:00
Quinten
7aee391200 Update mumble to use alpine edge 2024-03-04 14:22:25 +01:00
Michael (Parker) Parker
63dc802953 Merge pull request #217 from kamcio96/feature/sinusbot-python3-requests
Add python3-pip and pythons requests lib for ytdl wrapper to sinusbot image
2024-02-11 10:48:18 -05:00
Quinten
d052cddef9 Merge pull request #222 from rumenbl/add-go-1-22
Add Golang 1.22
2024-02-11 16:44:23 +01:00
Rumen
a2302e85c7 add go 1.22 2024-02-07 23:45:50 +02:00
Michael (Parker) Parker
8c0c7f11e6 Add rcon to wine images (#221)
This adds the rcon cli to the wine images
2024-02-07 08:01:20 +01:00
Alexander Ballauf
bcc7c30440 Add sniper platform image (#220)
* Add sniper platform image

* steamcmd sniper force TARGETOS and TARGETARCH

---------

Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
2024-02-03 16:40:27 +01:00
Michael (Parker) Parker
5d9b55303f Merge pull request #219 from parkervcp/Enshrouded
Steamcmd: fix validate & proton add tini
2024-01-26 12:05:39 -05:00
Quinten
e9545e4553 Steamcmd: fix validate & proton add tini 2024-01-26 17:42:37 +01:00
kamcio96
11c0991582 Add python3-pip and pythons requests lib for ytdl wrapper 2024-01-12 13:37:01 +01:00
Michael (Parker) Parker
adda5bf356 Merge pull request #211 from parkervcp/mongodb-7
Add mongodb 7
2024-01-08 20:29:30 -05:00
Michael (Parker) Parker
bb565efe53 Merge pull request #215 from rumenbl/add-nodejs-21
Add NodeJS 21
2024-01-02 18:50:40 -05:00
Rumen
cbf89de3b1 add nodejs 21 2024-01-03 01:31:56 +02:00
Quinten
535912d013 Merge pull request #214 from rumenbl/master
Add Java 21 to readme
2023-12-31 16:41:44 +01:00
Rumen
733d820e71 Add Java 21 2023-12-31 17:07:01 +02:00
Michael (Parker) Parker
2127820005 Merge pull request #213 from djohts/mariadb_11.2
Add MariaDB 11.2
2023-12-26 16:46:26 -05:00
djoh
17e36116c7 Add MariaDB 11.2 2023-12-25 23:22:39 +00:00
Red-Thirten
6bb8c6fb29 [Arma 3] Fix SIGINT not getting passed to server (#212)
* Add Tini to Arma 3
* add forgoten tini to Python 3.12


---------

Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
2023-12-19 09:51:19 +01:00
Quinten
74cd18c868 Add mongodb 7 2023-12-17 09:59:00 +01:00
Vincenz
a401057a70 PosgreSQL 16 (#210)
* add PostgreSQL 16

---------

Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
2023-12-11 18:37:36 +01:00
Quinten
3cebe03711 Merge pull request #207 from V01D-PH03N1X/fix/youtube-dl
TeaSpeak replaced youtube-dl with ytdlp
2023-12-10 11:35:13 +01:00
Quinten
b3f1e19813 Merge pull request #209 from MarcoCoreDuo/java-21-tini
Add tini to java 21 Dockerfile
2023-11-30 23:53:50 +01:00
MarcoCoreDuo
7e2ffbbfd8 Add tini to java 21 Dockerfile 2023-11-30 22:37:59 +01:00
Sebastian Schindler
a3926fb0e4 fix: replaced youtube-dl by ytdlp 2023-11-21 01:42:25 +01:00
Michael (Parker) Parker
72650fe46f Merge pull request #204 from parkervcp/tini-2
Add tini to some more images + fix Postgress stop
2023-11-19 12:37:05 -05:00
Michael (Parker) Parker
fa14c76d0e Merge pull request #203 from parkervcp/fixes
Fixes images build + update workflow actions
2023-11-19 12:36:17 -05:00
Michael (Parker) Parker
f751694239 Merge pull request #206 from Senaris/master
Add dotnet_8
2023-11-18 20:37:29 -05:00
Tita Junior Radu
f84191102a Add dotnet_8 2023-11-19 03:08:44 +02:00
Quinten
dc52a6b037 Update all workflow actions 2023-11-18 18:52:06 +01:00
Quinten
fa5c4c1be5 Merge pull request #205 from Senaris/master
Add dotnet 8
2023-11-18 18:45:16 +01:00
Quinten
5023aa8715 install tini 2023-11-18 18:42:27 +01:00
Quinten
a02fea5fd6 add tini to dayz 2023-11-18 14:18:35 +01:00
Quinten
71f1752fda Add tini and more packages to postgres 2023-11-18 14:16:12 +01:00
Senaris
89d6a8311e dotnet 8 2023-11-17 02:12:48 +02:00
Quinten
535e9f9c3e add tini: Valheim 2023-11-11 10:38:14 +01:00
Quinten
ddce84116a add tini: elixir 2023-11-11 10:34:10 +01:00
Quinten
816a447e3a add forgoten STOPSIGNAL to uptimekuma 2023-11-11 10:32:24 +01:00
Quinten
3ef00bd216 add tini to bun 2023-11-11 10:31:42 +01:00
Quinten
83436eb3b6 add tini: Uptimekuma 2023-11-11 10:29:52 +01:00
Quinten
e638f58017 Rust: stop building 1.31 2023-11-01 20:17:41 +01:00
Quinten
f226560025 redbot: do not install discord-text-sanitizer 2023-11-01 20:15:57 +01:00
Quinten
c523dc5258 Update bastion 2023-11-01 20:15:32 +01:00
Michael (Parker) Parker
3dc42ebf9f Merge pull request #202 from gOOvER/missedtini
nodejs17/add mising tini
2023-11-01 11:28:41 -04:00
gOOvER
714924a140 add mising tini to node17 2023-11-01 16:26:43 +01:00
Michael (Parker) Parker
ebe9cde046 Merge pull request #166 from parkervcp/tini
Use tini for some images to fix the ^C  stop bug
2023-11-01 08:43:17 -04:00
Michael (Parker) Parker
9fe4f0edee Merge pull request #197 from parkervcp/mta
add mta image
2023-10-27 11:10:22 -04:00
Quinten
3f46cef524 update README.md 2023-10-27 17:01:49 +02:00
Quinten
be29669286 add mta image 2023-10-27 16:59:57 +02:00
Michael (Parker) Parker
55c10964b3 Merge pull request #196 from parkervcp/fix-go-builds
Update go to build 1.20
2023-10-24 09:38:27 -04:00
Michael (Parker) Parker
71fa06603b Merge pull request #192 from parkervcp/update-mono
mono: make steamcmd work and build for arm64
2023-10-24 09:33:07 -04:00
Quinten
831f368c3d Update go.yml 2023-10-18 09:45:27 +02:00
Michael (Parker) Parker
171b3d83d1 Merge pull request #193 from parkervcp/java-21
add java 21
2023-10-17 20:50:17 -04:00
Michael (Parker) Parker
e205284a04 Merge pull request #195 from oq-x/master
Go 1.20 and 1.21
2023-10-17 20:49:58 -04:00
oq
711fa72c1b Update README.md 2023-10-17 02:37:51 +03:00
oq
11a89c1821 Update go.yml 2023-10-17 02:34:22 +03:00
oq
647152a923 Go 1.20.1 2023-10-17 02:33:56 +03:00
oq
9b6cf12509 Go 1.20 2023-10-17 02:33:29 +03:00
Quinten
8b98e089b3 Merge pull request #194 from Loki-101/add-python12
Add python3.12
2023-10-13 07:22:44 +02:00
Loki
3fff30486b Create Dockerfile 2023-10-12 21:43:45 -07:00
Loki
d795d38a69 Update README.md 2023-10-12 21:42:24 -07:00
Loki
ee0916e02b Update python.yml 2023-10-12 21:41:43 -07:00
Quinten
1f47802f77 add java 21 2023-10-12 12:22:11 +02:00
Quinten
cbe953c448 mono: make steamcmd work and build for arm64 2023-10-11 19:29:25 +02:00
Torsten Widmann
33e2794a5c add chromium for http monitor chromium (#191)
Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com>
2023-10-01 16:58:47 +02:00
Torsten Widmann
37a2c908e5 added apprise - fix timezone (#190)
Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com>
2023-10-01 10:01:42 +02:00
Quinten
672f6722e3 nodejs:14 remove extra tab 2023-09-26 18:21:31 +02:00
Quinten
17c8e25f4e Add tini redbot 2023-09-26 18:18:47 +02:00
Quinten
b36072dcca Merge branch 'master' into tini 2023-09-26 18:15:23 +02:00
Torsten Widmann
1e054e321f add cloudflared arm64 (#189)
* add cloudflared arm64

* typo

* print cloudflared version on startup

---------

Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com>
Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
2023-09-26 17:36:31 +02:00
Michael (Parker) Parker
33c29c9046 Merge pull request #187 from gOOvER/uptimekuma
add uptime kuma image
2023-09-25 15:55:20 -04:00
gOOvER
4b53378f4d add readme 2023-09-25 18:02:51 +02:00
gOOvER
ede7b44624 add uptime kuma image 2023-09-25 18:00:34 +02:00
MrAvox
02a50118ef Added Elixir images (#182) 2023-09-22 20:01:34 +02:00
Michael (Parker) Parker
e2271e4503 Merge pull request #184 from parkervcp/fix-nodejs14-build
Fix nodejs 14 build
2023-09-17 09:51:19 -04:00
Quinten
d514f59440 Fix nodejs 14 build
I messed up and forgot a line break and now apt is failing
2023-09-06 19:46:09 +02:00
Quinten
94aa88bdce Merge branch 'master' into tini 2023-09-06 19:37:29 +02:00
Paul
02aad5199c Add libnss3 to nodejs (#183)
* Add libnss3 to nodejs
* Lock down some npm version

---------

Co-authored-by: Quinten <josdekurk@gmail.com>
2023-09-06 19:29:47 +02:00
mratox
cafdcdc0f5 Added Bun Image (#179)
* Add bun images

---------

Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com>
2023-08-27 13:08:02 +02:00
Michael (Parker) Parker
c425ab0ab4 make java entrypoint executable (#176)
Java: Set the file permissions to 755
2023-08-14 18:46:46 +02:00
Torsten Widmann
a62025a07f Cleanup java images (#175)
Cleanup java images
---------

Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com>
2023-08-14 15:24:24 +02:00
Michael (Parker) Parker
98585d0fb7 Merge pull request #168 from parkervcp/multi-installers
Make the installer image work for ARM64 and AMD64
2023-08-13 21:48:19 -04:00
Michael (Parker) Parker
0ac62fc3d4 Merge pull request #172 from parkervcp/typescript
Nodejs: Add Typescript support
2023-08-13 16:16:25 -04:00
Quinten
5b354d0efc Remove extra empty line 2023-08-13 10:53:28 +02:00
Quinten
47f6300258 Nodejs: Add Typescript support 2023-08-13 10:47:33 +02:00
Michael (Parker) Parker
dbe89a4771 Merge pull request #170 from gOOvER/wineupdate
update all  wine images to use latest keyrings and added wine devel
2023-08-11 09:57:26 -04:00
Quinten
baf272435a Use SIGINT as stop signal 2023-08-09 19:24:33 +02:00
Quinten
51a6752601 Bots: use qemu V2 2023-08-09 19:19:43 +02:00
Quinten
865ed80860 Merge branch 'master' into tini 2023-08-09 19:18:11 +02:00
gOOvER
96c591862f remove user 2023-08-06 12:51:30 +02:00
gOOvER
efebbd6edf Update README.md 2023-08-06 12:43:52 +02:00
gOOvER
9bf8077453 update all imanges to use latest keyrings and added wine devel 2023-08-06 12:40:56 +02:00
Torsten Widmann
6f24493faa update Redbot Image (#169)
Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com>
2023-08-05 15:56:10 +02:00
Quinten
310ed2569e make the installer image work for ARM64 and AMD64 2023-07-29 19:21:34 +02:00
Michael (Parker) Parker
1246f2b681 Merge pull request #167 from parkervcp/games-build
Update games.yml
2023-07-21 13:21:22 -04:00
Quinten
3ea6c22100 Update games.yml 2023-07-21 19:14:57 +02:00
Quinten
0eb47d3c6c Update games.yml 2023-07-21 19:13:54 +02:00
Quinten
a6b6f03424 Update games.yml 2023-07-21 19:07:32 +02:00
Michael (Parker) Parker
b857cd79ad Merge pull request #133 from parkervcp/minetest
games: add minetest
2023-07-21 11:40:56 -04:00
Quinten
3e04f0c22b Python: use SIGINT 2023-07-21 14:50:45 +02:00
Quinten
ad58d35379 fix samp 2023-07-19 18:24:43 +02:00
Quinten
0cc5ef2369 tini part 2 2023-07-19 18:20:40 +02:00
Quinten
e6c1b4cc4a tini part 1 2023-07-19 18:01:39 +02:00
Michael (Parker) Parker
ca3935f66f Merge pull request #165 from parkervcp/fivem
OS_Debian: add libstdc++6
2023-07-03 15:37:57 -04:00
Quinten
45dd8d9357 OS_Debian: add libstdc++6 2023-07-03 18:57:11 +02:00
Michael (Parker) Parker
8e12f8cff6 Merge pull request #161 from parkervcp/sinusbot
sinusbot: add new packages for teamspeak
2023-07-02 16:41:37 -04:00
Michael (Parker) Parker
591f7bca51 Merge pull request #164 from parkervcp/pavlov_vr
Steamcmd Ubuntu: pavlov_vr specific changes
2023-07-02 12:14:34 -04:00
Quinten
8377be4030 pavlov_vr specific changes 2023-07-02 17:55:29 +02:00
Loki
8a634cd2ba Add version 20 (#163)
Add: nodejs 20
2023-06-28 09:54:00 +02:00
Michael (Parker) Parker
1e97785047 Merge pull request #162 from parkervcp/erlang-arm64
build Erlang for arm64 + add iproute2 for the ip command to work
2023-06-22 09:38:02 -04:00
Quinten
b95dde031b build erlang for arm64 + add iproute2 for the ip command to work 2023-06-22 15:33:54 +02:00
Quinten
9a98437c20 sinusbot: add new packages 2023-06-19 14:03:49 +02:00
Quinten
01178a53f7 sinusbot: add libevent-2.1-7 2023-06-18 10:09:08 +02:00
Quinten
74204ccd5b Merge pull request #159 from parkervcp/update_redbot_image
fix redbot image to use bullseye again
2023-06-18 09:48:50 +02:00
Michael (Parker) Parker
bb7d18ec16 Merge pull request #160 from lilkingjr1/arma3
[Arma 3] Fix Bookworm specific packages
2023-06-17 22:41:22 -04:00
Red-Thirten
54276f702f Fix Bookworm specific packages
If we are going to lock the base image to Bullseye, we need to put the original libtbb2 packages back.
2023-06-17 19:37:14 -07:00
Michael (Parker) Parker
3a53a5bb6e fix redbot image to use bullseye again 2023-06-17 18:48:51 -04:00
Quinten
df897e2599 Merge pull request #158 from parkervcp/update_debian
update debian images
2023-06-18 00:38:06 +02:00
Michael (Parker) Parker
1abfb801ea update debian images
rolls the debian images back to debian bullseye while bookworm is evaluated
2023-06-17 18:34:59 -04:00
Michael (Parker) Parker
f379714c4f Merge pull request #147 from parkervcp/update-box64
Box64: add libstdc++6 + update package name
2023-06-17 17:49:33 -04:00
Michael (Parker) Parker
55b79ef52c Merge pull request #157 from lilkingjr1/arma3
[Arma 3] Fix SteamCMD unknown error & improve logging
2023-06-17 17:49:06 -04:00
Michael (Parker) Parker
5a6594a9ec Merge pull request #139 from parkervcp/update-rcon
update rcon
2023-06-17 17:47:27 -04:00
Red-Thirten
4310c0902c Fix SteamCMD unknown error & improve logging
- Lastest SteamCMD update throws new steamservice.so error that does not seem to affect downloads, so we will ignore it.
- Now prints found unknown error/failure logs to the console if they occur for easier debugging.
- Updates `libtbb2` to `libtbbmalloc2`, as `libtbb2` has been depreciated.
- Fixes error message coloring for certain error messages.
2023-06-17 14:33:57 -07:00
Michael (Parker) Parker
f95d775d46 Merge pull request #155 from parkervcp/proton
add "" arround the download link
2023-06-10 08:45:27 -04:00
Quinten
9def2c93ab add "" arround the download link 2023-06-10 14:43:36 +02:00
Michael (Parker) Parker
2fd5f661c6 Merge pull request #153 from parkervcp/wine-gecko-mono
Update wine Gecko and Mono versions
2023-05-31 08:36:59 -04:00
Quinten
b266b0c348 Update wine Gecko and Mono versions 2023-05-31 13:33:00 +02:00
Quinten
c9dc5173fc Merge pull request #152 from Loki-101/patch-3
Nodejs 17: Fix npm version compatibility & depreciation msg
2023-05-16 20:12:18 +02:00
Loki
e1243e6917 Fix npm version compatibility
The latest version of NPM for NodeJS 17 going off https://nodejs.org/en/download/releases is 8.11.0. Leaving it as @latest results in the following error during build:

 => ERROR [3/5] RUN         npm install npm@latest--location=global                                                                                                                                                                                                                                                     0.9s
------                                                                                                                                                                                                                                                                                                                       
 > [3/5] RUN         npm install npm@latest--location=global:
#0 0.846 npm ERR! code EINVALIDTAGNAME
#0 0.847 npm ERR! Invalid tag name "latest--location=global" of package "npm@latest--location=global": Tags may not have any characters that encodeURIComponent encodes.
#0 0.849 
#0 0.849 npm ERR! A complete log of this run can be found in:
#0 0.849 npm ERR!     /root/.npm/_logs/2023-05-14T21_06_16_353Z-debug-0.log
------
Dockerfile:9
--------------------
   7 |                 && useradd -m -d /home/container container
   8 |     
   9 | >>> RUN         npm install npm@latest--location=global
  10 |     
  11 |     USER        container
--------------------
ERROR: failed to solve: process "/bin/sh -c npm install npm@latest--location=global" did not complete successfully: exit code: 1


Additionally, there was a message during build about -g being depreciated and using --location=global instead, so I figured as long as I'm making a change to this anyways I may as well switch that out. With the first change it builds successfully, with the second change it builds successfully without the depreciation message.
2023-05-14 14:08:37 -07:00
Quinten
58193807b0 Merge pull request #150 from Loki-101/patch-2
Update Python to 3.11
2023-05-05 17:52:46 +02:00
Loki
25fbe04ec3 Update Python to 3.11
Tested on new install
2023-05-04 16:07:45 -07:00
Quinten
7752bfb2ac Box64: add libstdc++6 + update package name
- This update the  package name, and the way the KEY is downloaded.
- add libstdc++6  as it is needed for ragemp
2023-04-15 18:28:01 +02:00
Michael (Parker) Parker
a5643ab7f6 Merge pull request #110 from parkervcp/bastion-update-2
bastion: move to mongodb6 + python2 -> 3 + set mongodb to use always use the same log file + build for arm64
2023-03-29 08:13:13 -04:00
Quinten
dd29cf5041 Merge pull request #145 from gOOvER/nodejs19
add nodejs19
2023-03-19 13:06:02 +01:00
gOOvER
84421b5d88 Update README.md 2023-03-19 12:27:49 +01:00
gOOvER
75a3f263d7 add nodejs19 2023-03-19 12:26:19 +01:00
Quinten
2a04152d6b Merge pull request #144 from gOOvER/addpingcmd
nodejs/add ping cmd
2023-03-19 09:51:53 +01:00
gOOvER
f59be34e5f add ping cmd 2023-03-19 09:45:46 +01:00
Michael (Parker) Parker
53884eb2e5 Merge pull request #141 from parkervcp/erlang
add erlang 25 & 26
2023-03-16 13:40:01 -07:00
Quinten
46d85cb586 add erlang 25 & 26 2023-03-16 17:10:32 +01:00
Quinten
33a4e8410e update rcon 2023-03-13 10:13:21 +01:00
Michael (Parker) Parker
767dd3df8b Merge pull request #138 from parkervcp/dotnet
Dotnet
2023-03-08 10:29:27 -05:00
Quinten
693c8373b6 dotnet: update 3.1 & 2.1 2023-03-08 16:22:06 +01:00
Quinten
222b3f16e4 update dotnet 2023-03-08 16:20:34 +01:00
Quinten
83e940dc40 Merge pull request #137 from parkervcp/add_deb_package
add procps for deb image
2023-03-03 20:08:22 +01:00
Michael Parker
57e3ef41ed add procps for deb image
adding procps for better txadmin support on their requet
2023-03-03 13:48:18 -05:00
Quinten
8f8704ca2c Games: minetest for arm64 and amd64 2023-02-26 11:54:25 +01:00
Michael (Parker) Parker
2962ad087e Merge pull request #91 from parkervcp/Dotnet
add dotnet for arm64
2023-02-24 13:37:07 -05:00
Michael (Parker) Parker
21bd5b2e44 Merge pull request #135 from parkervcp/update-dart
add dart 2.18 and 2.19
2023-02-24 11:52:46 -05:00
Quinten
36fb96305c add dart 2.18 and 2.19 2023-02-24 17:42:44 +01:00
Quinten
f406fc9898 minetest: go back to ubuntu 2023-02-23 19:29:35 +01:00
Quinten
6534accaaa minetest: switch to alpine 2023-02-16 18:26:39 +01:00
Quinten
b0e0adf3c3 Merge pull request #127 from gOOvER/updated-build-push-actions-to-v4
actions/updated to build-push-actions v4
2023-02-16 17:45:04 +01:00
Quinten
f4b80be9a2 Merge pull request #132 from gOOvER/proton
add Steam Proton Image
2023-02-16 17:00:44 +01:00
gOOvER
05bfc8afca typo 2023-02-16 16:32:27 +01:00
gOOvER
dc8d96c028 Update entrypoint.sh 2023-02-16 16:29:41 +01:00
Quinten
0584d4f9fb add minetest to the readme 2023-02-16 16:23:30 +01:00
Quinten
4a8781c467 games: add minetest 2023-02-16 16:20:26 +01:00
gOOvER
c65c2ea1e7 protontricks switch to pip 2023-02-16 16:10:43 +01:00
gOOvER
7c3c8468da added winetricks and protontricks 2023-02-16 15:55:15 +01:00
gOOvER
9274174134 fixes 2023-02-14 16:32:30 +01:00
gOOvER
537f9dbdb1 add steam Proton Support 2023-02-14 16:25:39 +01:00
Quinten
15884179ee feat(steamcmd-debian): add libsdl2-2.0-0 (#126) 2023-02-12 11:25:24 +02:00
Quinten
56d5822652 feat(java): Replace openjdk with termium images (#116) 2023-02-12 10:47:06 +02:00
Quinten
d6a360e762 Merge pull request #129 from gOOvER/xvfb
steamcmd: add xvfb
2023-02-04 11:01:17 +01:00
gOOvER
b29044fc2d add xvfb 2023-02-04 10:07:56 +01:00
gOOvER
bd3fa05c02 updated to build-push-actions v4 2023-02-02 17:38:09 +01:00
Quinten
4edd4e1e27 bastion: change mongodb stop cmd 2023-01-31 17:08:50 +01:00
Quinten
2904076f42 feat(installers): add wget package to debian(#125) 2023-01-30 16:38:53 +02:00
Quinten
8fa7a9076b Merge pull request #124 from gOOvER/nodejs-fix
removed 2nd layer of npm install
2023-01-28 16:21:51 +01:00
gOOvER
112a4fd3dd removed 2nd layer of npm install 2023-01-28 16:02:52 +01:00
Quinten
2aa3647c4f Merge pull request #123 from gOOvER/fixactions
removed version pinning from BuildKit in github actions
2023-01-28 10:30:44 +01:00
gOOvER
f471b14ed9 removed version pinning from BuildKit 2023-01-28 09:49:09 +01:00
Michael (Parker) Parker
e6bcb46ec0 Merge pull request #122 from gOOvER/npmupdate
Nodejs / add npm install npm@latest -g
2023-01-27 14:17:02 -05:00
gOOvER
dbd807f77b add npm install npm@latest -g 2023-01-27 20:11:24 +01:00
Quinten
4461eec267 Merge pull request #121 from gOOvER/patch-10
wine: update Mono for Wine 8
2023-01-26 17:32:36 +01:00
Torsten Widmann
fab1bc983c update Mono for Wine 8 2023-01-26 17:28:55 +01:00
Quinten
c4f00eb1c6 Merge pull request #120 from gOOvER/steamfix
wine: add fix for login to steamcmd
2023-01-22 16:59:25 +01:00
gOOvER
d316775d80 add fix for login 2023-01-22 16:56:48 +01:00
Quinten
eaeccca9f3 Merge pull request #118 from gOOvER/patch-8
wine_staging: add libsdl2-2.0-0 to prevent error
2023-01-16 18:58:22 +01:00
Quinten
8357fdb559 Merge pull request #119 from gOOvER/patch-9
wine_latest: add libsdl2-2.0-0 to prevent errors
2023-01-16 18:57:53 +01:00
Torsten Widmann
babae9abb0 Update Dockerfile 2023-01-16 17:15:50 +01:00
Torsten Widmann
8b1be5f194 add libsdl2-2.0-0 to prevent errors 2023-01-16 17:15:12 +01:00
Torsten Widmann
140f021df5 add libsdl2-2.0-0 to prevent error 2023-01-16 17:13:56 +01:00
Quinten
ee5cd831d9 Merge pull request #115 from gOOvER/patch-7
OS:Debian: add libfluidsynth2 for OpenTTD
2023-01-08 16:06:21 +01:00
Torsten Widmann
9c32930d92 add libfluidsynth2 for OpenTTD 2023-01-08 16:03:44 +01:00
Quinten
f056ef9a59 Merge pull request #114 from gOOvER/altvnet7
add support for dotnet7 to alt:v
2023-01-06 11:01:58 +01:00
gOOvER
f419c72aad add net7 2023-01-06 10:55:10 +01:00
Michael (Parker) Parker
147ad2b808 Merge pull request #113 from parkervcp/hotfix-steamcmd
fix build steamcmd
2022-12-31 10:22:52 -05:00
Quinten
ab693f3f9a steamcmd: (./../ -> ../) 2022-12-30 20:22:08 +01:00
Quinten
5416728357 fix build 2022-12-30 11:27:54 +01:00
Quinten
6c1690ed34 Merge pull request #111 from gOOvER/steamcmd
added steamcmd images and update buildx to latest
2022-12-30 11:20:34 +01:00
Quinten
933d994790 steamcmd fix maintainer + platform select 2022-12-30 11:17:38 +01:00
Quinten
1810594861 bastion: move images arround so it can be build for arm64. 2022-12-24 14:04:37 +01:00
Michael (Parker) Parker
42ca29c178 Merge pull request #107 from parkervcp/ubuntu-22.04
Update ubuntu to 22.04
2022-12-23 12:44:06 -05:00
gOOvER
52588fd6a3 typo 2022-12-23 18:01:20 +01:00
gOOvER
1a2cc48e26 missed on folder 2022-12-23 17:50:39 +01:00
gOOvER
e9f7995b25 Update README.md 2022-12-23 17:45:11 +01:00
gOOvER
7d91253f57 added steamcmd images and update buildx to latest 2022-12-23 17:41:12 +01:00
Quinten
67177391f8 bastion add npm update to the docker file 2022-12-18 11:26:46 +01:00
Quinten
8b5acf6917 Bastion: pritify entrypoint 2022-12-18 11:23:08 +01:00
Quinten
7d739dac17 bastion: move to mongodb6 + python2 -> 3 + set mongodb to use always the same log file 2022-12-18 10:57:10 +01:00
Michael (Parker) Parker
a7c48061ba Merge pull request #108 from parkervcp/bot-bastion
update bastion
2022-12-15 10:10:59 -05:00
Quinten
2bc577c6d1 update bastion 2022-12-15 16:02:31 +01:00
Quinten
e0a72d3b52 fix ubuntu 22 2022-12-10 11:42:01 +01:00
Quinten
4bd8939dcf Update Dockerfile 2022-12-04 20:17:45 +01:00
Michael (Parker) Parker
0f336f3f95 Merge pull request #104 from lilkingjr1/arma3
[Arma 3] Hot Fix SteamCMD Intermittently Failing Workshop Downloads
2022-11-29 15:07:43 -05:00
Red-Thirten
5742a2b8d8 Hot Fix Intermittent SteamCMD Failure & Improvements
- Fixes current issue where SteamCMD will intermittently present a "Failure" error when downloading Workshop mods due to a corrupt cache file.
- Replaced hard coded workshop directory path with a variable.
2022-11-29 11:17:22 -08:00
Red-Thirten
2ba5155100 Dockerfile - Tabs to Spaces 2022-11-29 11:09:27 -08:00
Quinten
dbdbc2fc1b Merge pull request #103 from parkervcp/parkertron_add_ca-certs
Parkertron add ca certs
2022-11-29 18:44:11 +01:00
Michael (Parker) Parker
c564e117f5 add ca-certificates
Reformatted File
Added notes

Moved general packages to their own line

Added eng language package to image as it's the default supported lang
2022-11-29 12:27:25 -05:00
Michael (Parker) Parker
d23d5cebe8 add ca-certificates 2022-11-29 12:18:51 -05:00
Quinten
0a5f5a45e8 Merge pull request #102 from lilkingjr1/source
[Source] Fix SteamCMD crash when logging in with real account
2022-11-27 21:48:30 +01:00
Quinten
83f64a3cb0 Merge pull request #101 from lilkingjr1/dayz
[DayZ] Fix SteamCMD crash when downloading mods
2022-11-27 21:46:55 +01:00
Red-Thirten
3b2edf8e50 Change entrypoint.sh to run SteamCMD on one CPU
Utilize `numactl` to force SteamCMD to run on only one CPU which resolves its current crashing issues on Debian when logging in with real accounts.
2022-11-27 12:31:53 -08:00
Red-Thirten
cc9f611a73 Add numactl to Dockerfile
Adds `numactl` package so it can be used within entrypoint.sh.
2022-11-27 12:18:54 -08:00
Red-Thirten
a70dabc45a Dockerfile - Tabs to spaces 2022-11-27 12:07:13 -08:00
Red-Thirten
e0b5384ab1 Change entrypoint.sh to run SteamCMD on one CPU
- Utilize `numactl` to force SteamCMD to run on only one CPU which resolves its current crashing issues on Debian.
- SteamCMD now complains about thread priority due to it failing to properly load `libSDL` (`libSDL` is included in the image, but will not load properly if it is not installed on the host due to it containing a kernel extension). Therefore, any warnings regarding threads will now be ignored.
- If SteamCMD fatally crashes, copy the directory where it saves its dumps (`/tmp/dumps`) to `/home/container` for easier debugging access.
2022-11-27 12:04:33 -08:00
Red-Thirten
1e1296b943 Add numactl to Dockerfile
Adds `numactl` package so it can be used within entrypoint.sh.
2022-11-27 12:01:48 -08:00
Quinten
a24bfa66fb Merge pull request #100 from lilkingjr1/arma3-debian
[Arma 3] Fix SteamCMD Crashing (Debian Edition)
2022-11-27 08:36:26 +01:00
Red-Thirten
38ec9eb9dc Change entrypoint.sh to run SteamCMD on one CPU
- Utilize `numactl` to force SteamCMD to run on only one CPU which resolves its current crashing issues on Debian.
- SteamCMD now complains about thread priority due to it failing to properly load `libSDL` (`libSDL` is included in the image, but will not load properly if it is not installed on the host due to it containing a kernel extension). Therefore, any warnings regarding threads will now be ignored.
- If SteamCMD fatally crashes, copy the directory where it saves its dumps (`/tmp/dumps`) to `/home/container` for easier debugging access.
2022-11-26 22:38:19 -08:00
Red-Thirten
7b44c28077 Add numactl to Dockerfile
Adds `numactl` package so it can be used within entrypoint.sh.
2022-11-26 22:28:27 -08:00
Quinten
68ffa9077e Merge pull request #95 from gOOvER/patch-7
add missing dotnet7 to readme
2022-11-26 15:33:13 +01:00
Quinten
efbb8cdf10 Merge pull request #98 from parkervcp/update_parkertron
update parkertron image
2022-11-26 15:25:32 +01:00
Michael (Parker) Parker
b4d915f6f5 update start command 2022-11-26 09:24:20 -05:00
Michael (Parker) Parker
dca678b143 update image
use the correct base image and add iproute2
2022-11-26 09:01:06 -05:00
Michael (Parker) Parker
5fef0ac2a7 update parkertron image 2022-11-25 18:29:00 -05:00
Torsten Widmann
e10d59432b add missing dotnet7 to readme 2022-11-13 20:38:40 +01:00
Quinten
415a61de92 fix spacing 2022-11-12 11:41:40 +01:00
Quinten
ad2a054f2a Merge branch 'master' into Dotnet 2022-11-12 11:41:05 +01:00
Quinten
50948f3b29 add dotnet 7 2022-11-12 11:37:06 +01:00
Michael (Parker) Parker
b57080cf56 Merge pull request #93 from gOOvER/dotnet7
add dotnet 7 image
2022-11-09 09:21:07 -05:00
Torsten Widmann
8c99fcdd6c add dotnet 7 2022-11-09 15:19:37 +01:00
QuintenQVD0
c0daa84da8 Dotnet arm64 fix 2022-11-06 17:51:12 +01:00
QuintenQVD0
83030416ae dotnet for arm64 2022-11-06 15:42:51 +01:00
Michael (Parker) Parker
b341ec2230 Merge pull request #88 from parkervcp/rethinkdb
add libprotobuf23 debian
2022-11-04 16:53:44 -04:00
Quinten
37a50d3fe2 add libprotobuf23 debian 2022-11-04 19:19:42 +01:00
Torsten Widmann
e0357d8c83 add python 3.11 (#87) 2022-10-28 13:04:44 +03:00
Quinten
e092d3b10d Merge pull request #85 from gOOvER/patch-6
remove not longer maintained java images
2022-10-24 20:01:54 +02:00
Torsten Widmann
1db5e3644a removed not longer maintained java images 2022-10-24 19:57:06 +02:00
Michael (Parker) Parker
b49284cfcb Merge pull request #82 from parkervcp/wine-staging
add wine staging + update mono and gecko version
2022-10-17 21:07:35 -04:00
Michael (Parker) Parker
551681e3e3 Merge pull request #83 from parkervcp/mumble-arm64-build
add mumble to be build on arm
2022-10-13 19:29:35 -04:00
Quinten
42c385ccfa add qemu for build mumble 2022-10-13 18:50:05 +02:00
Quinten
60c2ea90a6 Merge pull request #84 from devnote-dev/dart-lang
feat: add dart-lang image
2022-10-10 20:16:25 +02:00
devnote-dev
b0af8c08ad Merge branch 'master' into dart-lang 2022-10-10 19:13:15 +01:00
devnote-dev
ad0edbeca7 fix: order image correctly 2022-10-10 19:11:56 +01:00
devnote-dev
b50c2d57de feat: add dart-lang image 2022-10-09 20:17:52 +01:00
Quinten
559efa8297 fix brom bash to ash 2022-10-09 20:48:48 +02:00
QuintenQVD0
2b28025cd1 update workflow build naming 2022-10-09 20:30:52 +02:00
Quinten
6cafe12193 do not try to print the cargo version as it is not installed 2022-10-05 20:24:32 +02:00
Quinten
c4c273461c add mumble to main readme 2022-10-05 20:22:43 +02:00
Quinten
babd606e28 add mumble to be build on arm 2022-10-05 20:18:13 +02:00
Quinten
f439d16e4f Merge pull request #75 from parkervcp/add/mumble
add mumble image
2022-10-05 18:34:18 +02:00
Quinten
eb204c0184 add to readme 2022-10-02 18:52:55 +02:00
Quinten
96b0d0c84f add wine staging + update mono and gecko version 2022-10-02 18:51:42 +02:00
Michael (Parker) Parker
3b0cd40708 Merge pull request #81 from parkervcp/remove_youtube-dl_sinusbot
Remove youtube-dl sinusbot
2022-10-01 05:00:34 -07:00
Quinten
7a1c48f044 Remove youtube-dl sinusbot
remove the youtube-dl bin out of the sinusbot image as it is not needed and will be download with the egg install script
2022-10-01 13:48:04 +02:00
Quinten
62079c76c2 Merge pull request #80 from gOOvER/sinusbotytdl
Sinusbot - add youtubedl
2022-10-01 12:10:22 +02:00
Torsten Widmann
3d21f637cd add bzip2 libxss1 libxcomposite1 2022-10-01 12:06:36 +02:00
Quinten
a0da0949b5 Merge pull request #71 from gOOvER/patch-5
removed double xvfb package
2022-10-01 12:03:19 +02:00
Torsten Widmann
df290261e6 add youtubedl 2022-10-01 10:58:54 +02:00
Michael (Parker) Parker
038772db1a Merge pull request #79 from oliver194/master
Add Ubuntu installer image + add java 19 & ubuntu installer to the readme file.
2022-09-30 10:01:16 -07:00
oliver194
dd3c4cfcb6 fix for aarch64 2022-09-30 17:29:51 +01:00
oliver194
b6a7cd70dc Add java 19 + ubuntu installer 2022-09-30 08:20:02 +01:00
oliver194
6c8f9ca120 Merge branch 'parkervcp:master' into master 2022-09-30 08:15:59 +01:00
Michael (Parker) Parker
200a9ad0c4 Merge pull request #78 from danny6167/add-valheim
Add Valheim specific image
2022-09-29 15:39:58 -07:00
Michael (Parker) Parker
9ba58dfa5b Merge branch 'master' into add-valheim 2022-09-29 15:39:52 -07:00
Daniel Barton
fee04c857e fix conflict 2022-09-30 05:07:39 +08:00
Daniel Barton
da84dee67d Add Valheim specific image
This image uses NSS wrapper to enable Valheim to load with libparty.so/crossplay. Otherwise it fails due to the UID not being a valid user
2022-09-30 04:48:44 +08:00
Quinten
0d7c8bf4f9 Merge pull request #77 from parkervcp/update_sinusbot_image
Update Sinusbot Image
2022-09-29 21:39:22 +02:00
Michael (Parker) Parker
9ae8c1427a Update Sinusbot Image 2022-09-29 14:43:16 -04:00
oliver194
daf942cc8b Update installers.yml 2022-09-29 12:10:54 +01:00
oliver194
fd3d88d98a add ubuntu installer 2022-09-29 12:09:51 +01:00
Daniel Barton
885373a1d5 Rename DockerFile to Dockerfile (#76) 2022-09-28 15:58:08 +03:00
Michael Parker
d07eb520b5 add mumble image 2022-09-26 15:00:32 -04:00
Michael (Parker) Parker
e8947cb71b Merge pull request #74 from oliver194/master
add java 19 to be built
2022-09-25 07:14:31 -07:00
oliver194
42ab4c6c84 add java 19 to be built 2022-09-25 08:36:57 +01:00
Michael (Parker) Parker
a53d51f6fc Merge pull request #73 from PterodactylFan/patch-2
Java 19 support
2022-09-24 10:37:00 -07:00
Michael (Parker) Parker
68b8b19eb0 Merge pull request #69 from ExtremTechniker/feat/add-golang-17-to-19
Add Go Versions 1.17, 1.18 and 1.19
2022-09-24 09:41:32 -07:00
PterodactylFan
0665f931d8 Create DockerFile 2022-09-24 19:38:23 +03:00
Torsten Widmann
bde731de72 removed double xvfb package 2022-09-18 10:23:29 +02:00
Extrem Techniker
695deed0d9 Add Go Versions 1.17, 1.18 and 1.19 2022-09-14 11:17:28 +02:00
Michael (Parker) Parker
a310a8c01b Merge pull request #67 from gOOvER/mongodb6
add mongodb 6
2022-08-28 08:12:03 -04:00
Torsten Widmann
c76cc152d6 added mongodb6 to readme 2022-08-28 14:11:49 +02:00
Torsten Widmann
3781925838 add mongodb 6 2022-08-28 14:10:37 +02:00
Alex
89e25a6c58 fix(redis): correct ci login action version
V3 doesn't exist.
2022-08-15 16:00:26 +03:00
Alex
e666c81354 docs(pr-template): add description field
Short overview of why something is changed is helpful in reviewing the PR
2022-08-14 16:07:11 +03:00
Torsten Widmann
2a9dddad44 build: update workflow dependencies to the latest versions (#65) 2022-08-07 12:58:29 +03:00
Michael (Parker) Parker
cf3cb2cd84 Merge pull request #66 from gOOvER/add-redis-7
add Redis 7 Image
2022-08-03 22:09:31 -04:00
Torsten Widmann
032d9bcf41 workflow 2022-08-01 16:07:04 +02:00
Torsten Widmann
8141da4091 add redis 7 Image 2022-08-01 16:06:19 +02:00
Torsten Widmann
246ff17dd6 Merge branch 'parkervcp:master' into master 2022-08-01 15:45:28 +02:00
Alex
c47ac7f71b ci(box64): fix file path 2022-07-21 10:09:20 +03:00
Alex
f636454065 ci(box64): fix tag name 2022-07-21 10:01:11 +03:00
Michael (Parker) Parker
524ef63b53 Merge pull request #48 from Th3Dilli/mohaa
Mohaa
2022-07-19 12:20:38 -04:00
Michael (Parker) Parker
40529b238a Merge pull request #63 from QuintenQVD0/patch-2
Add Box64 arm64 Emulator Image
2022-07-19 12:19:57 -04:00
Quinten
87f386f237 add files 2022-07-06 16:40:21 +02:00
Quinten
06dd419177 Create Dockerfile 2022-07-06 16:36:29 +02:00
Alex
68547991a3 feat(installers): add tar and unzip to alpine 2022-06-18 16:37:45 +03:00
Manuel Dielacher
530d8149ec Merge branch 'master' into mohaa 2022-06-16 09:06:15 +02:00
Michael (Parker) Parker
5f15c2a0c0 Merge pull request #56 from QuintenQVD0/wine-mono
update wine-mono version
2022-06-13 15:10:40 -04:00
Michael (Parker) Parker
960561cb0b Merge pull request #62 from gOOvER/patch-4
update rcon -cli to 0.10.2
2022-06-10 15:06:17 -04:00
Torsten Widmann
92ac2cf943 update rcon -cli to 0.10.2
rcon-cli changelog:

Added --timeout, -T flag, allowed to set dial and execute timeout #20.
Added Makefile.
2022-06-10 16:38:48 +02:00
gOOvER
bff217e1f5 Merge remote-tracking branch 'upstream/master' 2022-06-08 10:21:28 +02:00
Michael (Parker) Parker
8db3f9ce01 Merge pull request #58 from parkervcp/ci/platform
ci: fix multi platform builds
2022-05-31 15:36:19 -04:00
Michael (Parker) Parker
27f81b7928 Merge pull request #61 from gOOvER/patch-3
Update/Wine - add tzdata
2022-05-31 15:35:30 -04:00
Torsten Widmann
1e257e11fc typo 2022-05-31 20:28:09 +02:00
Torsten Widmann
7528d7949f add tzdata 2022-05-31 20:26:18 +02:00
Michael (Parker) Parker
73b6889384 Merge pull request #57 from lilkingjr1/arma3
Arma 3 Image Cleanup & Refurbishment
2022-05-23 08:07:44 -04:00
Michael (Parker) Parker
9e163269a3 Merge pull request #59 from lilkingjr1/dayz
Add DayZ Standalone Image
2022-05-22 22:47:46 -04:00
Red-Thirten
84abe90d35 Fix Entrypoint contributors 2022-05-22 19:42:37 -07:00
Red-Thirten
c13524ceab Add DayZ to root README 2022-05-22 19:20:37 -07:00
softwarenoob
5e94fc4239 fix: multi platform builds 2022-05-23 05:17:41 +03:00
Red-Thirten
c4c9556772 Fix --platform FROM flag in Dockerfile 2022-05-22 19:15:05 -07:00
Red-Thirten
afe583692c Initial Upload
Currently only works with experimental branch of DayZ Standalone.
2022-05-22 18:32:49 -07:00
Red-Thirten
e750a642c9 Arma 3 Image Cleanup & Refurbishment
Files:
- Remove dependency of having `libnss_wrapper.so` libraries directly in the image. Instead, use the libraries provided with their respective packages. This fixes the current 32-bit version being broken and ensures the libraries stay up to date with their respective packages.
- Slight change to passwd.template to accommodate variable name change.

Dockerfile:
- Change the base image to Debian, which from testing appears to run cleaner and faster for Arma. It also should yield a smaller image.
- Fix depreciated `ENV` call format.
- Removed un-needed packages.
- Added iproute2 package.
- Consolidated the NSS Wrapper setup to a commented group of lines to make understanding it's purpose and setup more clear.
- Added shell flag to `useradd` command.

Entrypoint:
- General cleanup.
- Changed `LD_PRELOAD`s to point to package-provided library file locations.
2022-05-22 17:35:03 -07:00
Quinten
8d8151b304 update wine-mono 2022-05-18 18:16:20 +02:00
Th3Dilli
9f576f32e9 Merge remote-tracking branch 'origin/master' into mohaa 2022-05-13 21:17:32 +02:00
Th3Dilli
8fed9ba306 apply INTERNAL_IP fix 2022-05-13 21:15:33 +02:00
Th3Dilli
ad792dc521 fix alphabetical order 2022-05-13 21:14:43 +02:00
Michael (Parker) Parker
cc7a9d0da5 Merge pull request #54 from QuintenQVD0/samp
add samp image
2022-05-03 15:53:18 -04:00
Quinten
bb84c74981 Fix double tzdata install 2022-05-03 07:06:37 +02:00
Quinten
73a2340b3b fix alphabetical orde 2022-05-02 17:54:08 +02:00
Quinten
70e5a4321a add samp image 2022-05-02 17:30:09 +02:00
Alex
cd6b949868 fix: invalid INTERNAL_IP environment value
New IP route output appends UID to the result, causing the value to be set to that instead of the IP. Fix it by ignoring the last two appended UID results
2022-04-24 18:10:20 +03:00
gOOvER
82aaa60e39 Merge remote-tracking branch 'upstream/master' 2022-04-24 08:31:38 +02:00
Michael (Parker) Parker
9f02fe140f Merge pull request #52 from CDE90/rust-lang
feat: add Rust (language) images
2022-04-22 08:25:01 -04:00
Michael (Parker) Parker
2252e1d37b Merge pull request #49 from IAmSilK/feature-arma3-optional-mods
Add optional mods environment variable to Arma 3 image
2022-04-22 08:00:53 -04:00
Michael (Parker) Parker
ec8d0556b0 Merge pull request #53 from gOOvER/nodejs18
add nodejs18
2022-04-22 07:56:25 -04:00
gOOvER
91cba2e3e5 Update README.md 2022-04-22 07:38:43 +02:00
gOOvER
bc57e78b0c add nodejs18 2022-04-22 07:36:18 +02:00
gOOvER
160614b7df Merge remote-tracking branch 'upstream/master' 2022-04-22 07:31:34 +02:00
CDE90
e889a1e143 Update README.md 2022-04-17 16:19:55 +01:00
CDE90
fb6c0dcf56 Add rust language 2022-04-17 16:16:14 +01:00
Alex
b99d99e233 feat(arma): install tzdata
resolves #50
2022-03-26 17:41:49 +02:00
IAmSilK
e79e8cdd4d Ensure optional mods files are deleted after downloading and keys are removed if an optional mod is unconfigured 2022-03-25 01:50:24 -03:00
IAmSilK
1769dffa31 Add optional mods environment variable which allows for downloading mods without requiring them from clients 2022-03-23 19:39:55 -03:00
Michael (Parker) Parker
daf1f5ca6f Merge pull request #47 from QuintenQVD0/patch-1
Update ALTV
2022-03-16 18:58:53 -04:00
Th3Dilli
d268ce3f5a rm debian changes 2022-03-13 12:16:30 +01:00
Th3Dilli
3c8acf91ce add image to readme 2022-03-13 12:12:01 +01:00
Th3Dilli
9b2a7384bd add mohaa image based on debian 2022-03-13 11:57:42 +01:00
Quinten
5fd5db9c81 Update ALTV
The image was broken , It spit out a error: `[09:00:13][Error] Error loading "libcsharp-module.so", Unix error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: Version `GLIBCXX_3.4.26' not found (required by /home/container/modules/libcsharp-module.so)`
2022-03-13 11:46:58 +01:00
Torsten Widmann
1e037c37d1 feat(wine): Mono 7.1 and HTTPS DL url (#46) 2022-03-12 19:21:17 +02:00
Michael (Parker) Parker
55e128a2b5 Merge pull request #45 from parkervcp/fix_db_images
make sure db images use correct entrypoint
2022-02-28 17:45:08 -05:00
Michael Parker
80bb87e8cb make sure db images use correct entrypoint 2022-02-23 16:02:00 -05:00
gOOvER
c912d54020 Merge remote-tracking branch 'upstream/master' 2022-02-22 15:32:50 +01:00
Manuel Dielacher
dd3b647339 Revert "feat: add mohaa game image (#12)"
Failed Pull request with no support for multiarch. 


This reverts commit 2c88875951.
2022-02-19 18:36:24 +02:00
Manuel Dielacher
2c88875951 feat: add mohaa game image (#12) 2022-02-19 18:06:21 +02:00
Alex
f85bd4d78f Merge branch 'master' into mohaa 2022-02-19 18:05:57 +02:00
Torsten Widmann
ab9fecc764 feat: add altv game image (#43) 2022-02-19 17:45:52 +02:00
Torsten Widmann
c9f2cdddbf Merge branch 'parkervcp:master' into master 2022-02-04 16:37:06 +01:00
Torsten Widmann
7caf182f27 update repo url to debian 11 (#42) 2022-02-03 18:32:47 +02:00
gOOvER
face79057c undo commit 2022-02-03 17:28:54 +01:00
gOOvER
c6d043d91b update repo url to debian 11 2022-02-03 17:26:39 +01:00
Michael (Parker) Parker
77ceb396ff Merge pull request #41 from Emilgardis/java-startup
change startup parsing to eval
2022-02-01 16:55:41 -05:00
Emil Gardström
a93590f3a1 change startup parsing to eval
done for similar reason as 2e366792c1
2022-02-01 22:48:21 +01:00
Torsten Widmann
c263e42dac feat: add PostgreSQL/MongoDB Images and fix multiarch (#40)
add PostgreSQL/MongoDB Images and fixes multi-arch builds for MariaDB, Redis.
2022-01-25 17:08:35 +02:00
softwarenoob
68ef32ee2a ci(redis): fix registry typo 2022-01-24 17:41:43 +02:00
Torsten Widmann
f16413485b Merge remote-tracking branch 'upstream/master' 2022-01-24 16:28:59 +01:00
Torsten Widmann
91cb52ee6b feat: Redis 5 and 6 images (#39) 2022-01-24 17:26:20 +02:00
Torsten Widmann
e7e753bb66 Merge remote-tracking branch 'upstream/master' 2022-01-24 16:14:41 +01:00
Torsten Widmann
fc453017ff feat: add MariaDB Images (#38) 2022-01-23 15:58:11 +02:00
Alex
6ca451ec48 feat(mono): install lib32gcc-s1 for steam (#37) 2022-01-22 13:00:09 +02:00
Alex
f5981b736d feat(base_debian): remove lib32gcc-s1 for ARM support (#36) 2022-01-22 12:49:44 +02:00
gOOvER
b951d4ee77 Merge remote-tracking branch 'parkervcp/master' 2022-01-11 15:31:11 +01:00
Torsten Widmann
8a4ef8387d add libzip4 to base debian (#34) 2022-01-10 19:22:04 +02:00
Manuel Dielacher
d29f934558 Merge branch 'master' into mohaa 2021-12-27 09:10:54 +01:00
gOOvER
9c522ecf1f Merge remote-tracking branch 'parkervcp/master' 2021-12-23 19:50:53 +01:00
Alex
a597262dda Debian: downgrade liblua to 5.3 (#33) 2021-12-22 11:16:10 +02:00
gOOvER
a4cde47402 Merge remote-tracking branch 'parkervcp/master' 2021-12-16 14:01:51 +01:00
Manuel Dielacher
cfe53ba22a Merge branch 'master' into mohaa 2021-12-15 20:21:25 +01:00
Th3Dilli
de54edec3b add mohaa deps 2021-12-15 20:10:44 +01:00
Th3Dilli
4fb11156b8 Revert "add mohaa image"
This reverts commit b515b8a09e.
2021-12-15 20:06:09 +01:00
Th3Dilli
586cdaa793 Revert "add missing dependency for entrypoint.sh"
This reverts commit 9754274aab.
2021-12-15 20:05:55 +01:00
softwarenoob
6bde9c7d3e chore: remove reduntant node 15 non-LTS release
closes #31
2021-12-14 14:58:39 +02:00
gOOvER
bb106d6417 Merge remote-tracking branch 'origin/master' 2021-12-13 17:48:29 +01:00
Michael (Parker) Parker
dd005a0661 Merge pull request #30 from Ethanadams642/master
Update node.js dockerfile to include libtool
2021-12-13 10:47:32 -05:00
Ethan Adams
341204d673 Reverted build username 2021-12-13 10:39:02 -05:00
Ethan Adams
79df97b6f3 Merge branch 'parkervcp:master' into master 2021-12-08 21:04:41 -05:00
Michael (Parker) Parker
f968025491 Merge pull request #28 from parkervcp/add_libevent
add libevent-dev to ubuntu/debian
2021-12-08 20:57:14 -05:00
Ethan Adams
fcfbe573e3 Update nodejs.yml 2021-12-08 20:40:48 -05:00
Ethan Adams
8c996953d9 Update nodejs.yml 2021-12-08 20:33:37 -05:00
Ethan Adams
7e55c3b6ab Added libtool installation to Node.js 12 docker file 2021-12-08 14:12:43 -05:00
Ethan Adams
0ac02a5c42 Added libtool installation to Node.js 14 docker file 2021-12-08 14:12:06 -05:00
Ethan Adams
dc1e8d8bf3 Added libtool installation to Node.js 15 docker file 2021-12-08 14:11:26 -05:00
Ethan Adams
a6d1d9f28e Added libtool installation to Node.js 16 docker file 2021-12-08 14:10:50 -05:00
Ethan Adams
38ef2e77c5 Added libtool installation to Node.js 17 Docker file 2021-12-08 14:09:53 -05:00
Michael (Parker) Parker
9a1ed8985d Merge pull request #29 from PteroForge/nodejsbullseye
Update all nodejs to Bullseye-slim to prevent sqlite3 error
2021-12-08 10:44:16 -05:00
gOOvER
d5e1e2e5ec update all nodejs to bullseye-slim 2021-12-08 07:30:18 +01:00
gOOvER
fb53cb148a Merge remote-tracking branch 'parkervcp/master' 2021-12-08 07:23:40 +01:00
Michael Parker
167df328f4 add libevent-dev to ubuntu/debian
required to run webdis
2021-12-07 21:35:49 -05:00
Alex
e0e3b4bf7b fix(source): windows parameter for auto update 2021-12-07 17:59:54 +02:00
Alex
2e366792c1 ci(source): change startup parsing to eval
exec does not support startups that are more keen of scripts with multiple breaks and statements. Ark or 7d2d are examples of this.

ref https://github.com/parkervcp/eggs/pull/1420
2021-12-07 15:30:41 +02:00
gOOvER
0f0501adfa Merge remote-tracking branch 'parkervcp/master' 2021-12-03 17:11:57 +01:00
Alex
fe82cc0ac0 chore: remove reduntant FiveM specific image 2021-11-27 08:54:41 +02:00
Torsten Widmann
28ce052787 feat: add rconcli to source image (#27) 2021-11-27 08:51:31 +02:00
Alex
84035341a8 fix: force_install_dir error
SteamCMD now complains when trying to login before providing install dir `Please use force_install_dir before logon!`
2021-11-26 01:26:58 +02:00
Fernando De Lucchi
eaedc9408a ci(bots): ARM64 support and layer caching (#26) 2021-11-25 03:27:05 +02:00
Torsten Widmann
7f9cd3c581 Add additional Repos for Wine (#25) 2021-11-24 21:26:54 +02:00
Alex
5b70a19170 fix: package new line installation 2021-11-21 17:48:20 +02:00
Alex
2afebbba5a fix: move user env to the beginning 2021-11-21 17:47:25 +02:00
Alex
aa054a48bf fix: add symbolic link for user 2021-11-21 17:44:31 +02:00
Alex
9bd45e5af0 fix: add user to Debian base 2021-11-21 17:20:08 +02:00
Torsten Widmann
a4ef920a09 fix Debian Image (#24) 2021-11-21 17:10:36 +02:00
Alex
df3be85cba feat: use Bullseye for base Debian image
resolves #23
2021-11-21 16:44:55 +02:00
Alex
ac85bf789d add pull request template 2021-11-20 19:49:03 +02:00
Torsten Widmann
0abb82eb91 add wine latest (#21) 2021-11-20 19:33:43 +02:00
Alex
2c3c2e1615 docs: add Wine 2021-11-20 19:33:31 +02:00
Michael (Parker) Parker
f75391d115 Merge pull request #20 from lilkingjr1/steamcmd-update
[SteamCMD] 11/19/21 Update Fix for `force_install_dir` Warning
2021-11-19 22:34:51 -05:00
Red-Thirten
ac894c3267 Arma3's entrypoint.sh SteamCMD fix
SteamCMD apparently put an update out today that now displays a warning if `+force_install_dir` is after `+login`. This removes the error from appearing.
2021-11-19 19:29:31 -08:00
Red-Thirten
990b4fabab Source's entrypoint.sh SteamCMD fix
SteamCMD apparently put an update out today that now displays a warning if `+force_install_dir` is after `+login`. This removes the error from appearing.
2021-11-19 19:27:07 -08:00
Alex
cd85cfd68c docs(readme): Fix dotnet links 2021-11-20 00:18:03 +02:00
Alex
7185d6820e feat: add unzip zip tar jq 2021-11-18 21:38:10 +02:00
Torsten Widmann
56e01559dc add missing workdir (#19) 2021-11-15 10:53:41 +02:00
Torsten Widmann
5bbef80956 Add mono latest and libfreetype6 to java (#18)
Changes codestyle of Java images
2021-11-12 13:04:16 +02:00
Torsten Widmann
1788debd03 docs(readme): fix dotnet 6 link (#17) 2021-11-09 20:57:32 +02:00
Torsten Widmann
5e9841ebad feat: Add dotnet6 (#16) 2021-11-09 20:21:55 +02:00
Torsten Widmann
32ae4fa67c Fixed a little typo (#15) 2021-11-06 12:27:02 +02:00
Red-Thirten
c69ecc02b2 [games] Add sleep to source image (#14)
Sleep for 1 second before proceeding with steamcmd update to make sure it doesn't deadlock
2021-11-05 23:57:00 +02:00
Alex
7b66879352 feat: ARM64 support for Python 2021-10-22 15:30:43 +03:00
Alex
8ba8f2f811 feat: ARM64 support for Node.js
resolves #10
2021-10-22 15:24:42 +03:00
Alex
b24985022a feat: add Node.js 17 image 2021-10-22 14:41:47 +03:00
Alex
d6bb5e86c5 fix: java arm64 builds 2021-10-20 20:45:11 +03:00
Alex
940c33fced feat: Add java 17 image 2021-10-20 20:41:56 +03:00
Alex
f87987d58b ci(python): Fix 3.10 build 2021-10-19 20:21:47 +03:00
Alex
d1d8af7e92 feat: add python 3.10 2021-10-19 20:03:47 +03:00
Alex
4393b67ef6 ci(java): Disable openj9 builds due to missing base image 2021-10-19 20:00:25 +03:00
Alex
198e3d6fed fix: java image building 2021-10-19 19:59:37 +03:00
Alex
58bddef746 nodejs: install latest npm 2021-10-10 21:40:44 +03:00
Alex
c2d71fa988 ci: enable manual workflow dispatch 2021-10-05 17:07:58 +03:00
Alex
69afcac64c ci: fix nodejs workflow on push 2021-10-05 17:06:47 +03:00
Alex
5480ec769c image(nodejs): add build-essential, tar and curl 2021-10-05 17:05:09 +03:00
Softwarenoob
40bdd4c727 Merge remote-tracking branch 'origin/master' 2021-10-05 17:01:33 +03:00
Th3Dilli
9754274aab add missing dependency for entrypoint.sh 2021-10-01 18:23:55 +02:00
Th3Dilli
b515b8a09e add mohaa image 2021-09-30 22:54:38 +02:00
Michael (Parker) Parker
b69df4c990 Merge pull request #11 from PteroForge/teaspeak
add Teaspeak image
2021-09-10 10:20:52 -04:00
gOOvER
26eac566d1 add missing Bot Section 2021-09-10 11:30:27 +02:00
gOOvER
383f147a53 fixed typo 2021-09-10 09:07:56 +02:00
gOOvER
5d04199789 add teaspeak image 2021-09-10 08:59:01 +02:00
gOOvER
e7da5acb90 Merge remote-tracking branch 'parkervcp/master' 2021-09-10 06:56:28 +02:00
Alex
e276d9d73c docs(dotnet): Fix stupid github workflow versioning
Github ignores subversions if they contain zero. Smart.
2021-08-24 21:19:28 +03:00
Alex
4f63fec3f0 Revert "refactor(dotnet): folder name"
This reverts commit 6b4870906b.
2021-08-24 21:16:58 +03:00
Alex
6b4870906b refactor(dotnet): folder name 2021-08-24 21:07:56 +03:00
Alex
7bbb93110c ci(dotnet): fix workflow and formatting
Fix formatting and provide build platform. This together with debian path fix should resolve building of the images
2021-08-24 21:05:46 +03:00
Softwarenoob
7ef5084968 ci(build): force rebuild base images 2021-08-24 20:54:27 +03:00
Softwarenoob
2b0f33c236 Merge branch 'ci/oses' 2021-08-24 20:51:07 +03:00
207 changed files with 6003 additions and 529 deletions

1
.gitattributes vendored Normal file
View File

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

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

@@ -0,0 +1,15 @@
## Description
<!-- Please explain what is being changed or added as a short overview for this PR. Also, link existing relevant issues if they exist with resolves # -->
### All Submissions:
* [ ] Have you ensured there aren't other open [Pull Requests](../pulls) for the same update or change?
* [ ] Have you created a new branch for your changes and PR from that branch and not from your master branch?
<!-- The new image submission below can be removed if you are not adding a new image -->
### New Image Submissions:
1. [ ] Have you added your image to the [Github workflows](https://github.com/parkervcp/yolks/tree/master/.github/workflows)?
2. [ ] Have you updated the README list to contain your new image?

43
.github/workflows/apps.yml vendored Normal file
View File

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

View File

@@ -1,5 +1,6 @@
name: build oses
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -19,21 +20,22 @@ jobs:
- debian
- ubuntu
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./oses/${{ matrix.oses }}
file: ./oses/${{ matrix.oses }}/Dockerfile
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
push: true
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

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

39
.github/workflows/box64.yml vendored Normal file
View File

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

40
.github/workflows/bun.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: build bun
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- bun/**
jobs:
push:
name: "yolks:bun_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- latest
- canary
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./bun
file: ./bun/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
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

@@ -1,5 +1,6 @@
name: build cassandra
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -18,21 +19,21 @@ jobs:
- java8_python2
- java11_python3
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./cassandra
file: ./cassandra/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
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) || '' }}

44
.github/workflows/dart.yml vendored Normal file
View File

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

View File

@@ -1,7 +1,6 @@
name: build dotnet
on:
# Allows you to run this workflow manually from the Actions tab
# workflow_dispatch:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -19,23 +18,29 @@ jobs:
tag:
- 2.1
- 3.1
- 5.0
- 5
- 6
- 7
- 8
- 9
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./dotnet
file: ./dotnet/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
push: true
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) || '' }}

43
.github/workflows/elixir.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: build elixir
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- elixir/**
jobs:
push:
name: "yolks:elixir_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- '1.15'
- '1.14'
- '1.13'
- '1.12'
- latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./elixir
file: ./elixir/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
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

@@ -1,5 +1,6 @@
name: build erlang
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -18,22 +19,24 @@ jobs:
- 22
- 23
- 24
- 25
- 26
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./erlang
file: ./erlang/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
push: true
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

@@ -1,5 +1,6 @@
name: build games
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -8,32 +9,71 @@ on:
paths:
- games/**
jobs:
push:
name: "games:${{ matrix.game }}"
pushAMD64:
name: "games_AMD64:${{ matrix.game }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
game:
- altv
- arma3
- fivem
- dayz
- mohaa
- rust
- samp
- source
- valheim
- thebattleforwesnoth
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./games/${{ matrix.game }}
file: ./games/${{ matrix.game }}/Dockerfile
platforms: linux/amd64
push: true
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:
name: "games_All:${{ matrix.game }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
game:
- minetest
- mta
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64,amd64
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./games/${{ matrix.game }}
file: ./games/${{ matrix.game }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/games:${{ matrix.game }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/games:{0}', matrix.game) || '' }}

View File

@@ -1,5 +1,6 @@
name: build go
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -15,25 +16,32 @@ jobs:
fail-fast: false
matrix:
tag:
- 1.14
- 1.15
- 1.16
- '1.14'
- '1.15'
- '1.16'
- '1.17'
- '1.18'
- '1.19'
- '1.20'
- '1.21'
- '1.22'
- '1.23'
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./go
file: ./go/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
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

@@ -1,5 +1,6 @@
name: build installers
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -17,22 +18,24 @@ jobs:
tag:
- alpine
- debian
- ubuntu
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./installers
file: ./installers/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
push: true
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

@@ -1,5 +1,6 @@
name: build java
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -16,28 +17,32 @@ jobs:
matrix:
tag:
- 8
- 8j9
# - 8j9
- 11
- 11j9
# - 11j9
- 16
- 16j9
# - 16j9
- 17
- 19
- 21
- 22
steps:
- uses: actions/checkout@v2
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./java
file: ./java/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
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) || '' }}

49
.github/workflows/mariadb.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: build mariadb
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- mariadb/**
jobs:
push:
name: "yolks:mariadb_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- '10.3'
- '10.4'
- '10.5'
- '10.6'
- '10.7'
- '11.2'
- '11.3'
- '11.4'
- '11.5'
- '11.6'
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./mariadb
file: ./mariadb/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/yolks:mariadb_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:mariadb_{0}', matrix.tag) || '' }}

43
.github/workflows/mongodb.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: build mongodb
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- mongodb/**
jobs:
push:
name: "yolks:mongodb_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- 4
- 5
- 6
- 7
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./mongodb
file: ./mongodb/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/yolks:mongodb_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:mongodb_{0}', matrix.tag) || '' }}

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

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

@@ -1,12 +1,13 @@
name: build nodejs
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- nodejs/*
- nodejs/**
jobs:
push:
name: "yolks:nodejs_${{ matrix.tag }}"
@@ -17,24 +18,32 @@ jobs:
tag:
- 12
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./nodejs
file: ./nodejs/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
push: true
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) || '' }}

46
.github/workflows/postgres.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: build postgres
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- postgres/**
jobs:
push:
name: "yolks:postgres_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- 9
- 10
- 11
- 12
- 13
- 14
- 16
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./postgres
file: ./postgres/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
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

@@ -1,5 +1,6 @@
name: build python
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
@@ -15,26 +16,32 @@ jobs:
fail-fast: false
matrix:
tag:
- 2.7
- 3.7
- 3.8
- 3.9
- '2.7'
- '3.7'
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
- '3.13'
steps:
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
- uses: docker/build-push-action@v6
with:
context: ./python
file: ./python/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
push: true
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) || '' }}

42
.github/workflows/redis.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: build redis
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- redis/**
jobs:
push:
name: "yolks:redis_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- 5
- 6
- 7
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./redis
file: ./redis/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/yolks:redis_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:redis_{0}', matrix.tag) || '' }}

42
.github/workflows/rust.yml vendored Normal file
View File

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

43
.github/workflows/steamcmd.yml vendored Normal file
View File

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

70
.github/workflows/voice.yml vendored Normal file
View File

@@ -0,0 +1,70 @@
name: build voice
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- voice/**
jobs:
pushx64:
name: "yolks:voice_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- teaspeak
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./voice/${{ matrix.tag }}
file: ./voice/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
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:
name: "yolks:voice_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- mumble
steps:
- uses: actions/checkout@v4
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
with:
version: "v0.8.2"
buildkitd-flags: --debug
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v6
with:
context: ./voice/${{ matrix.tag }}
file: ./voice/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/yolks:voice_${{ matrix.tag }}
${{ github.repository_owner == 'pelican-eggs' && format('ghcr.io/parkervcp/yolks:voice_{0}', matrix.tag) || '' }}

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

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

348
README.md
View File

@@ -18,87 +18,323 @@ example of this would be something like Java or Python which are used for runnin
All of these images are available for `linux/amd64` and `linux/arm64` versions, unless otherwise specified, to use
these images on an arm system, no modification to them or the tag is needed, they should just work.
### Contributing
## Contributing
When adding a new version to an existing image, such as `java v42`, you'd add it within a child folder of `java`, so
`java/42/Dockerfile` for example. Please also update the correct `.github/workflows` file to ensure that this new version
is tagged correctly.
## Available Images
### [Oses](/oses)
* [alpine](/oses/alpine)
* `ghcr.io/parkervcp/yolks:alpine`
* [debian](/oses/debian)
* `ghcr.io/parkervcp/yolks:debian`
* [ubuntu](/oses/ubuntu)
* `ghcr.io/parkervcp/yolks:ubuntu`
### [Apps](/apps)
* [`uptimekuma`](/apps/uptimekuma)
* `ghcr.io/parkervcp/yolks:apps_uptimekuma`
### [Bot](/bot)
* [`bastion`](/bot/bastion)
* `ghcr.io/parkervcp/yolks:bot_bastion`
* [`parkertron`](/bot/parkertron)
* `ghcr.io/parkervcp/yolks:bot_parkertron`
* [`redbot`](/bot/red)
* `ghcr.io/parkervcp/yolks:bot_red`
* [`sinusbot`](/bot/sinusbot)
* `ghcr.io/parkervcp/yolks:bot_sinusbot`
### [Box64](/box64)
* [`Box64`](/box64)
* `ghcr.io/parkervcp/yolks:box64`
### [Bun](/bun)
* [`Bun Canary`](/bun/canary)
* `ghcr.io/parkervcp/yolks:bun_canary`
* [`Bun Latest`](/bun/latest)
* `ghcr.io/parkervcp/yolks:bun_latest`
### [Cassandra](/cassandra)
* [`cassandra_java8_python27`](/cassandra/cassandra_java8_python2)
* `ghcr.io/parkervcp/yolks:cassandra_java11_python2`
* [`cassandra_java11_python3`](/cassandra/cassandra_java11_python3)
* `ghcr.io/parkervcp/yolks:cassandra_java11_python3`
* [`cassandra_java8_python27`](/cassandra/cassandra_java8_python2)
* `ghcr.io/parkervcp/yolks:cassandra_java11_python2`
* [`cassandra_java11_python3`](/cassandra/cassandra_java11_python3)
* `ghcr.io/parkervcp/yolks:cassandra_java11_python3`
### [Dart](/dart)
* [`dart2.17`](/dart/2.17)
* `ghcr.io/parkervcp/yolks:dart_2.17`
* [`dart2.18`](/dart/2.18)
* `ghcr.io/parkervcp/yolks:dart_2.18`
* [`dart2.19`](/dart/2.19)
* `ghcr.io/parkervcp/yolks:dart_2.19`
* [`dart3.3`](/dart/3.3)
* `ghcr.io/parkervcp/yolks:dart_3.3`
* [`dart stable`](/dart/stable)
* `ghcr.io/parkervcp/yolks:dart_stable`
### [dotNet](/dotnet)
* [`dotnet2.1`](/dotnet/2.1)
* `ghcr.io/parkervcp/yolks:dotnet_2.1`
* [`dotnet3.1`](/dotnet/3.1)
* `ghcr.io/parkervcp/yolks:dotnet_3.1`
* [`dotnet5.0`](/dotnet/5.0)
* `ghcr.io/parkervcp/yolks:dotnet_5.0`
* [`dotnet2.1`](/dotnet/2.1)
* `ghcr.io/parkervcp/yolks:dotnet_2.1`
* [`dotnet3.1`](/dotnet/3.1)
* `ghcr.io/parkervcp/yolks:dotnet_3.1`
* [`dotnet5.0`](/dotnet/5)
* `ghcr.io/parkervcp/yolks:dotnet_5`
* [`dotnet6.0`](/dotnet/6)
* `ghcr.io/parkervcp/yolks:dotnet_6`
* [`dotnet7.0`](/dotnet/7)
* `ghcr.io/parkervcp/yolks:dotnet_7`
* [`dotnet8.0`](/dotnet/8)
* `ghcr.io/parkervcp/yolks:dotnet_8`
* [`dotnet9.0`](/dotnet/9)
* `ghcr.io/parkervcp/yolks:dotnet_9`
### [Elixir](/elixir)
* [`elixir 1.12`](/elixir/1.12)
* `ghcr.io/parkervcp/yolks:elixir_1.12`
* [`elixir 1.13`](/elixir/1.13)
* `ghcr.io/parkervcp/yolks:elixir_1.13`
* [`elixir 1.14`](/elixir/1.14)
* `ghcr.io/parkervcp/yolks:elixir_1.14`
* [`elixir 1.15`](/elixir/1.12)
* `ghcr.io/parkervcp/yolks:elixir_1.15`
* [`elixir latest`](/elixir/latest)
* `ghcr.io/parkervcp/yolks:elixir_latest`
### [Erlang](/erlang)
* [`erlang22`](/erlang/22)
* `ghcr.io/parkervcp/yolks:erlang_22`
* [`erlang23`](/erlang/23)
* `ghcr.io/parkervcp/yolks:erlang_23`
* [`erlang24`](/erlang/24)
* `ghcr.io/parkervcp/yolks:erlang_24`
* [`erlang22`](/erlang/22)
* `ghcr.io/parkervcp/yolks:erlang_22`
* [`erlang23`](/erlang/23)
* `ghcr.io/parkervcp/yolks:erlang_23`
* [`erlang24`](/erlang/24)
* `ghcr.io/parkervcp/yolks:erlang_24`
### [Games](/games)
* [`arma3`](/games/arma3)
* `ghcr.io/parkervcp/games:arma3`
* [`fivem`](/games/fivem)
* `ghcr.io/parkervcp/games:fivem`
* [`source`](/games/source)
* `ghcr.io/parkervcp/games:source`
* [`altv`](/games/altv)
* `ghcr.io/parkervcp/games:altv`
* [`arma3`](/games/arma3)
* `ghcr.io/parkervcp/games:arma3`
* [`dayz`](/games/dayz)
* `ghcr.io/parkervcp/games:dayz`
* [`minetest`](/games/minetest)
* `ghcr.io/parkervcp/games:minetest`
* [`mohaa`](games/mohaa)
* `ghcr.io/parkervcp/games:mohaa`
* [`Multi Theft Auto: San Andreas`](games/mta)
* `ghcr.io/parkervcp/games:mta`
* [`Rust (dedicated server)`](games/rust)
* `ghcr.io/parkervcp/games:rust`
* [`samp`](/games/samp)
* `ghcr.io/parkervcp/games:samp`
* [`source`](/games/source)
* `ghcr.io/parkervcp/games:source`
* [`thebattleforwesnoth`](/games/thebattleforwesnoth)
* `ghcr.io/parkervcp/games:thebattleforwesnoth`
* [`valheim`](/games/valheim)
* `ghcr.io/parkervcp/games:valheim`
### [Golang](/go)
* [`go1.14`](/go/1.14)
* `ghcr.io/parkervcp/yolks:go_1.14`
* [`go1.15`](/go/1.15)
* `ghcr.io/parkervcp/yolks:go_1.15`
* [`go1.16`](/go/1.16)
* `ghcr.io/parkervcp/yolks:go_1.16`
* [`go1.14`](/go/1.14)
* `ghcr.io/parkervcp/yolks:go_1.14`
* [`go1.15`](/go/1.15)
* `ghcr.io/parkervcp/yolks:go_1.15`
* [`go1.16`](/go/1.16)
* `ghcr.io/parkervcp/yolks:go_1.16`
* [`go1.17`](/go/1.17)
* `ghcr.io/parkervcp/yolks:go_1.17`
* [`go1.18`](/go/1.18)
* `ghcr.io/parkervcp/yolks:go_1.18`
* [`go1.19`](/go/1.19)
* `ghcr.io/parkervcp/yolks:go_1.19`
* [`go1.20`](/go/1.20)
* `ghcr.io/parkervcp/yolks:go_1.20`
* [`go1.21`](/go/1.21)
* `ghcr.io/parkervcp/yolks:go_1.21`
* [`go1.22`](/go/1.22)
* `ghcr.io/parkervcp/yolks:go_1.22`
* [`go1.23`](/go/1.23)
* `ghcr.io/parkervcp/yolks:go_1.23`
### [Java](/java)
* [`java7`](/java/7)
* `ghcr.io/parkervcp/yolks:java_7`
* [`java8`](/java/8)
* `ghcr.io/parkervcp/yolks:java_8`
* [`java9`](/java/9)
* `ghcr.io/parkervcp/yolks:java_9`
* [`java11`](/java/11)
* `ghcr.io/parkervcp/yolks:java_11`
* [`java14`](/java/14)
* `ghcr.io/parkervcp/yolks:java_14`
* [`java16`](/java/16)
* `ghcr.io/parkervcp/yolks:java_16`
* [`java8`](/java/8)
* `ghcr.io/parkervcp/yolks:java_8`
* [`java11`](/java/11)
* `ghcr.io/parkervcp/yolks:java_11`
* [`java16`](/java/16)
* `ghcr.io/parkervcp/yolks:java_16`
* [`java17`](/java/17)
* `ghcr.io/parkervcp/yolks:java_17`
* [`java19`](/java/19)
* `ghcr.io/parkervcp/yolks:java_19`
* [`java21`](/java/21)
* `ghcr.io/parkervcp/yolks:java_21`
* [`java22`](/java/22)
* `ghcr.io/parkervcp/yolks:java_22`
### [MariaDB](/mariadb)
* [`MariaDB 10.3`](/mariadb/10.3)
* `ghcr.io/parkervcp/yolks:mariadb_10.3`
* [`MariaDB 10.4`](/mariadb/10.4)
* `ghcr.io/parkervcp/yolks:mariadb_10.4`
* [`MariaDB 10.5`](/mariadb/10.5)
* `ghcr.io/parkervcp/yolks:mariadb_10.5`
* [`MariaDB 10.6`](/mariadb/10.6)
* `ghcr.io/parkervcp/yolks:mariadb_10.6`
* [`MariaDB 10.7`](/mariadb/10.7)
* `ghcr.io/parkervcp/yolks:mariadb_10.7`
* [`MariaDB 11.2`](/mariadb/11.2)
* `ghcr.io/parkervcp/yolks:mariadb_11.2`
* [`MariaDB 11.3`](/mariadb/11.3)
* `ghcr.io/parkervcp/yolks:mariadb_11.3`
* [`MariaDB 11.4`](/mariadb/11.4)
* `ghcr.io/parkervcp/yolks:mariadb_11.4`
* [`MariaDB 11.5`](/mariadb/11.5)
* `ghcr.io/parkervcp/yolks:mariadb_11.5`
* [`MariaDB 11.6`](/mariadb/11.6)
* `ghcr.io/parkervcp/yolks:mariadb_11.6`
### [MongoDB](/mongodb)
* [`MongoDB 4`](/mongodb/4)
* `ghcr.io/parkervcp/yolks:mongodb_4`
* [`MongoDB 5`](/mongodb/5)
* `ghcr.io/parkervcp/yolks:mongodb_5`
* [`MongoDB 6`](/mongodb/6)
* `ghcr.io/parkervcp/yolks:mongodb_6`
* [`MongoDB 7`](/mongodb/7)
* `ghcr.io/parkervcp/yolks:mongodb_7`
### [Mono](/mono)
* [`mono_latest`](/mono/latest)
* `ghcr.io/parkervcp/yolks:mono_latest`
### [Nodejs](/nodejs)
* [`node12`](/nodejs/12)
* `ghcr.io/parkervcp/yolks:nodejs_12`
* [`node14`](/nodejs/14)
* `ghcr.io/parkervcp/yolks:nodejs_14`
* [`node15`](/nodejs/15)
* `ghcr.io/parkervcp/yolks:nodejs_15`
* [`node16`](/nodejs/16)
* `ghcr.io/parkervcp/yolks:nodejs_16`
* [`node12`](/nodejs/12)
* `ghcr.io/parkervcp/yolks:nodejs_12`
* [`node14`](/nodejs/14)
* `ghcr.io/parkervcp/yolks:nodejs_14`
* [`node16`](/nodejs/16)
* `ghcr.io/parkervcp/yolks:nodejs_16`
* [`node17`](/nodejs/17)
* `ghcr.io/parkervcp/yolks:nodejs_17`
* [`node18`](/nodejs/18)
* `ghcr.io/parkervcp/yolks:nodejs_18`
* [`node19`](/nodejs/19)
* `ghcr.io/parkervcp/yolks:nodejs_19`
* [`node20`](/nodejs/20)
* `ghcr.io/parkervcp/yolks:nodejs_20`
* [`node21`](/nodejs/21)
* `ghcr.io/parkervcp/yolks:nodejs_21`
* [`node22`](/nodejs/22)
* `ghcr.io/parkervcp/yolks:nodejs_22`
* [`node23`](/nodejs/23)
* `ghcr.io/parkervcp/yolks:nodejs_23`
### [PostgreSQL](/postgres)
* [`Postgres 9`](/postgres/9)
* `ghcr.io/parkervcp/yolks:postgres_9`
* [`Postgres 10`](/postgres/10)
* `ghcr.io/parkervcp/yolks:postgres_10`
* [`Postgres 11`](/postgres/11)
* `ghcr.io/parkervcp/yolks:postgres_11`
* [`Postgres 12`](/postgres/12)
* `ghcr.io/parkervcp/yolks:postgres_12`
* [`Postgres 13`](/postgres/13)
* `ghcr.io/parkervcp/yolks:postgres_13`
* [`Postgres 14`](/postgres/14)
* `ghcr.io/parkervcp/yolks:postgres_14`
### [Python](/python)
* [`python3.7`](/python/3.7)
* `ghcr.io/parkervcp/yolks:python_3.7`
* [`python3.8`](/python/3.8)
* `ghcr.io/parkervcp/yolks:python_3.8`
* [`python3.9`](/python/3.9)
* `ghcr.io/parkervcp/yolks:python_3.9`
* [`python3.7`](/python/3.7)
* `ghcr.io/parkervcp/yolks:python_3.7`
* [`python3.8`](/python/3.8)
* `ghcr.io/parkervcp/yolks:python_3.8`
* [`python3.9`](/python/3.9)
* `ghcr.io/parkervcp/yolks:python_3.9`
* [`python3.10`](/python/3.10)
* `ghcr.io/parkervcp/yolks:python_3.10`
* [`python3.11`](/python/3.11)
* `ghcr.io/parkervcp/yolks:python_3.11`
* [`python3.12`](/python/3.12)
* `ghcr.io/parkervcp/yolks:python_3.12`
* [`python3.13`](/python/3.13)
* `ghcr.io/parkervcp/yolks:python_3.13`
### [Redis](/redis)
* [`Redis 5`](/redis/5)
* `ghcr.io/parkervcp/yolks:redis_5`
* [`Redis 6`](/redis/6)
* `ghcr.io/parkervcp/yolks:redis_6`
* [`Redis 7`](/redis/7)
* `ghcr.io/parkervcp/yolks:redis_7`
### [Rust](/rust)
* ['rust1.56'](/rust/1.56)
* `ghcr.io/parkervcp/yolks:rust_1.56`
* ['rust1.60'](/rust/1.60)
* `ghcr.io/parkervcp/yolks:rust_1.60`
* ['rust latest'](/rust/latest)
* `ghcr.io/parkervcp/yolks:rust_latest`
### [SteamCMD](/steamcmd)
* [`SteamCMD Debian lastest`](/steamcmd/debian)
* `ghcr.io/parkervcp/steamcmd:debian`
* [`SteamCMD Debian Dotnet`](/steamcmd/dotnet)
* `ghcr.io/parkervcp/steamcmd:dotnet`
* [`SteamCMD Proton`](/steamcmd/proton)
* `ghcr.io/parkervcp/steamcmd:proton`
* [`SteamCMD Proton`](/steamcmd/proton_8)
* `ghcr.io/parkervcp/steamcmd:proton_8`
* [`SteamCMD Sniper latest`](/steamcmd/sniper)
* `ghcr.io/parkervcp/steamcmd:sniper`
* [`SteamCMD Ubuntu latest LTS`](/steamcmd/ubuntu)
* `ghcr.io/parkervcp/steamcmd:ubuntu`
### [Voice](/voice)
* [`Mumble`](/voice/mumble)
* `ghcr.io/parkervcp/yolks:voice_mumble`
* [`TeaSpeak`](/voice/teaspeak)
* `ghcr.io/parkervcp/yolks:voice_teaspeak`
### [Wine](/wine)
* [`Wine`](/wine)
* `ghcr.io/parkervcp/yolks:wine_7`
* `ghcr.io/parkervcp/yolks:wine_8`
* `ghcr.io/parkervcp/yolks:wine_9`
* `ghcr.io/parkervcp/yolks:wine_10`
* `ghcr.io/parkervcp/yolks:wine_latest`
* `ghcr.io/parkervcp/yolks:wine_devel`
* `ghcr.io/parkervcp/yolks:wine_staging`
### [Installation Images](/installers)
* [`alpine-install`](/installers/alpine)
* `ghcr.io/parkervcp/installers:alpine`
* [`debian-install`](/installers/debian)
* `ghcr.io/parkervcp/installers:debian`
* [`ubuntu-install`](/installers/ubuntu)
* `ghcr.io/parkervcp/installers:ubuntu`

View File

@@ -0,0 +1,62 @@
FROM --platform=$TARGETOS/$TARGETARCH node:18-alpine
LABEL author="Torsten Widmann" maintainer="info@goover.de"
LABEL org.opencontainers.image.source="https://github.com/gOOvER/own-pterodactyl-images"
LABEL org.opencontainers.image.licenses=MIT
RUN apk update \
&& apk upgrade
RUN apk add --no-cache \
autoconf \
automake \
build-base \
ca-certificates\
chromium \
curl \
bind-tools \
ffmpeg \
g++ \
git \
gpg \
gnupg \
iproute2 \
iputils-ping \
libtool \
musl \
musl-utils \
musl-locales \
python3 \
python3-dev \
py3-pip \
pipx \
sqlite \
tzdata \
zip \
libc6-compat \
tini
# updating npm
RUN npm install npm@latest -g
# download cloudflared
ARG TARGETPLATFORM
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then ARCHITECTURE=amd64; elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then ARCHITECTURE=arm64; fi \
&& curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-${ARCHITECTURE} -o /usr/bin/cloudflared
RUN chmod +x /usr/bin/cloudflared
# install apprise
RUN pipx install apprise
## Setup user and working directory
RUN adduser -D -h /home/container 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 ["/sbin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

View File

@@ -0,0 +1,41 @@
#!/bin/ash
#System variables
clear
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# Switch to the container's working directory
cd /home/container || exit 1
# 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
# system informations
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${RED}Uptime Kuma Image${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${YELLOW}Running on Alpine: ${RED} $(cat /etc/alpine-release)${NC}"
echo -e "${YELLOW}Current timezone: ${RED} ${TZ} ${NC}"
echo -e "${YELLOW}NodeJS Version: ${RED} $(node -v) ${NC}"
echo -e "${YELLOW}Cloudflared Version: ${RED} $(/usr/bin/cloudflared --version) ${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
export PATH=$PATH:/root/.local/bin
# Replace Startup Variables
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

View File

@@ -1,13 +1,16 @@
FROM node:14-buster
FROM --platform=$TARGETOS/$TARGETARCH mongo:7-jammy
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
## install mongo
RUN wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add - \
&& echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list \
&& apt update \
&& apt install -y mongodb-org=4.2.7 mongodb-org-server=4.2.7 mongodb-org-shell=4.2.7 mongodb-org-mongos=4.2.7 mongodb-org-tools=4.2.7 \
## install nodejs 20
RUN apt update && apt install --no-install-recommends -y curl apt-transport-https ca-certificates gnupg \
&& mkdir -p /usr/share/keyrings \
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
&& apt update && apt install -y nodejs \
&& npm install -g npm@latest \
## install bastion reqs
&& apt install -y python build-essential netcat ffmpeg \
&& apt install -y python3 build-essential git libtool netcat ffmpeg iproute2 tzdata tini \
## add container user
&& useradd -d /home/container -m container -s /bin/bash
@@ -15,5 +18,9 @@ USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/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

@@ -1,12 +1,42 @@
#!/bin/bash
#Variables
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
clear
#show versions
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${YELLOW}BastionBot Installation${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${YELLOW}MongoDB Version:${NC} " && mongod --version
echo -e "${YELLOW}NodeJS Version:${NC} " && node -v
echo -e "${YELLOW}Python Version:${NC} " && python3 --version
echo -e "${BLUE}-------------------------------------------------${NC}"
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# Set environment variable that holds the Internal Docker IP
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}"
echo -e "${YELLOW}:/home/container${NC} ${MODIFIED_STARTUP}"
# start mongo
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${YELLOW}starting MongoDB...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
mongod --fork --dbpath /home/container/mongodb/ --port 27017 --logpath /home/container/mongod.log --logRotate reopen --logappend && until nc -z -v -w5 127.0.0.1 27017; do echo 'Waiting for mongodb connection...'; sleep 5; done
# Run the Server
echo -e "${BLUE}-------------------------------------------------${NC}"
echo -e "${YELLOW}BastionBot starting...${NC}"
echo -e "${BLUE}-------------------------------------------------${NC}"
eval ${MODIFIED_STARTUP}
# stop mongo
mongod --eval "db.adminCommand({ "shutdown" : 1 })"

View File

@@ -1,13 +1,20 @@
FROM alpine:3.9
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apk add --update --no-cache git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev \
&& adduser -D -h /home/container container
ENV DEBIAN_FRONTEND=noninteractive
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
RUN apt update -y \
# general packages
&& apt install -y iproute2 ca-certificates \
# additional packages for tesseract and eng lang support
libtesseract-dev tesseract-ocr-eng \
# add container user to run application
&& useradd -m -d /home/container container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/ash", "/entrypoint.sh"]
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

View File

@@ -1,8 +1,9 @@
#!/bin/ash
#!/bin/bash
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# Set environment variable that holds the Internal Docker IP
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
export INTERNAL_IP
# Replace Startup Variables
MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')`

View File

@@ -1,19 +1,56 @@
FROM python:3.8-slim
FROM --platform=$TARGETOS/$TARGETARCH python:3.11-slim-bookworm
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN mkdir -p /usr/share/man/man1 \
&& apt update \
&& apt -y install git ca-certificates dnsutils iproute2 wget curl xz-utils git openjdk-11-jre \
zlib1g-dev libffi-dev git libmagickwand-dev unzip libaa1-dev build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev ffmpeg imagemagick \
&& pip install python-forecastio tweepy unidecode discord-text-sanitizer mcstatus bs4 sqlalchemy geocoder valve python-valve py-cpuinfo psutil \
&& useradd -m -d /home/container container \
&& mkdir -p /home/container/.config/Red-DiscordBot/ \
&& ln -s /home/container/.config/Red-DiscordBot/ /usr/local/share/Red-DiscordBot
RUN mkdir -p /usr/share/man/man1
RUN apt update \
&& apt -y upgrade \
&& apt -y install \
git \
ca-certificates \
dnsutils \
iproute2 \
wget \
curl \
xz-utils \
openjdk-17-jre-headless \
zlib1g-dev \
libffi-dev \
libmagickwand-dev \
unzip \
libaa1-dev \
build-essential \
tk-dev \
libncurses5-dev \
libncursesw5-dev \
libreadline6-dev \
libdb5.3-dev \
libgdbm-dev \
libsqlite3-dev \
libssl-dev \
libbz2-dev \
libexpat1-dev \
liblzma-dev \
ffmpeg \
imagemagick \
tini
RUN pip install --upgrade pip
RUN pip install python-forecastio tweepy unidecode mcstatus bs4 sqlalchemy geocoder valve python-valve py-cpuinfo psutil
RUN mkdir -p /home/container/.config/Red-DiscordBot/
RUN ln -s /home/container/.config/Red-DiscordBot/ /usr/local/share/Red-DiscordBot
## Setup user and working directory
RUN useradd -m -d /home/container -s /bin/bash container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/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

@@ -1,8 +1,9 @@
#!/bin/bash
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# Set environment variable that holds the Internal Docker IP
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'))

View File

@@ -1,21 +1,29 @@
FROM ubuntu:18.04
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL maintainer="ki2007 <ki2007@damw.eu>" version="1.0"
LABEL org.opencontainers.image.authors="i2007@damw.eu"
LABEL version="1.0"
ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Install Dependencies
RUN apt update \
&& apt upgrade -y \
&& apt install -y ca-certificates less libasound2 libegl1-mesa libglib2.0-0 libnss3 libpci3 libpulse0 libxcursor1 libxslt1.1 libx11-xcb1 libxkbcommon0 locales pulseaudio python sudo x11vnc x11-xkb-utils xvfb iproute2 \
&& apt install -y ca-certificates less locales pulseaudio python3 python3-pip sudo x11vnc x11-xkb-utils xvfb iproute2 ffmpeg curl liblcms2-2 libatomic1 libxcb-xinerama0 \
fontconfig libasound2 libegl1-mesa libglib2.0-0 libnss3 libpci3 libpulse0 libxcursor1 libxslt1.1 libx11-xcb1 libxkbcommon0 bzip2 libxss1 libxcomposite1 libevent-2.1-7 \
libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libxkbcommon-x11-0 tini \
&& useradd -m -d /home/container container
#RUN python3 -m pip install requests
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/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

@@ -1,8 +1,10 @@
#!/bin/bash
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# Set environment variable that holds the Internal Docker IP
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
export INTERNAL_IP
# Replace Startup Variables
MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')`

34
box64/Dockerfile Normal file
View File

@@ -0,0 +1,34 @@
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="QuintenQVD" maintainer="josdekurk@gmail.com"
ENV DEBIAN_FRONTEND=noninteractive
## Update base packages
RUN apt update \
&& apt upgrade -y
## Install dependencies
RUN apt install -y libc++-dev libc6 git wget curl tar zip unzip binutils xz-utils liblzo2-2 cabextract iproute2 net-tools libatomic1 libsdl1.2debian libsdl2-2.0-0 \
libfontconfig libicu72 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadb-dev libmariadb-dev-compat libduktape207 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates \
libz3-dev rapidjson-dev tzdata libevent-dev libzip4 libsdl2-mixer-2.0-0 libsdl2-image-2.0-0 build-essential cmake libgdiplus libstdc++6
## Configure locale
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
##Install box64
RUN wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list \
&& wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg \
&& apt update && apt install box64-rpi4arm64 -y
RUN useradd -d /home/container -m container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

13
box64/entrypoint.sh Normal file
View File

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

20
bun/canary/Dockerfile Normal file
View File

@@ -0,0 +1,20 @@
FROM --platform=$TARGETOS/$TARGETARCH oven/bun:canary
LABEL author="MrAtox" maintainer="mratox@protonmail.com"
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 tini \
&& useradd -m -d /home/container container
RUN bun upgrade
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"]

16
bun/entrypoint.sh Normal file
View File

@@ -0,0 +1,16 @@
#!/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
# Print Bun Version
bun -v
# Replace Startup Variables
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

20
bun/latest/Dockerfile Normal file
View File

@@ -0,0 +1,20 @@
FROM --platform=$TARGETOS/$TARGETARCH oven/bun:latest
LABEL author="MrAtox" maintainer="mratox@protonmail.com"
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 tini \
&& useradd -m -d /home/container container
RUN bun upgrade
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

@@ -5,34 +5,34 @@ TZ=${TZ:-UTC}
export TZ
# Set environment variable that holds the Internal Docker IP
INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}')
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
export INTERNAL_IP
# Switch to the container's working directory
cd /home/container || exit 1
# Print Java version
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mjava -version\n"
printf "\033[1m\033[33mcontainer@pelican~ \033[0mjava -version\n"
java -version
# Print Python version
if command -v python &> /dev/null
then
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython --version\n"
printf "\033[1m\033[33mcontainer@pelican~ \033[0mpython --version\n"
python --version
else
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mpython3 --version\n"
printf "\033[1m\033[33mcontainer@pelican~ \033[0mpython3 --version\n"
python3 --version
fi
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
# variable format of "${VARIABLE}" before evaluating the string and automatically
# replacing the values.
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
PARSED=$(echo "$STARTUP" | sed -e 's/{{/${/g' -e 's/}}/}/g')
# Display the command we're running in the output, and then execute it with the env
# from the container itself.
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
# Display the command we're running in the output, and then execute it with eval
printf "\033[1m\033[33mcontainer@pelican~ \033[0m"
echo "$PARSED"
# shellcheck disable=SC2086
exec env ${PARSED}
eval "$PARSED"

View File

@@ -1,4 +1,4 @@
FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk11:alpine-jre
FROM --platform=$TARGETOS/$TARGETARCH adoptopenjdk/openjdk11:alpine-jre
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"

View File

@@ -1,4 +1,4 @@
FROM --platform=$BUILDPLATFORM adoptopenjdk/openjdk8:alpine-jre
FROM --platform=$TARGETOS/$TARGETARCH adoptopenjdk/openjdk8:alpine-jre
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"

18
dart/2.17/Dockerfile Normal file
View File

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

18
dart/2.18/Dockerfile Normal file
View File

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

18
dart/2.19/Dockerfile Normal file
View File

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

18
dart/3.3/Dockerfile Normal file
View File

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

16
dart/entrypoint.sh Normal file
View File

@@ -0,0 +1,16 @@
#!/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
# Print Dart version
dart --version
# Replace startup variables
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo ":/home/container$ ${MODIFIED_STARTUP}"
# Run the server
eval ${MODIFIED_STARTUP}

18
dart/stable/Dockerfile Normal file
View File

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

View File

@@ -1,21 +1,25 @@
FROM 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 \
&& apt upgrade -y \
&& apt install -y apt-transport-https wget iproute2 \
&& wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& rm packages-microsoft-prod.deb \
&& apt update -y \
&& apt install -y aspnetcore-runtime-2.1 libgdiplus
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/2.1 | grep -i '<h3 id="sdk-2.*">SDK 2.1.*</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
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/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

@@ -1,21 +1,26 @@
FROM 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 \
&& apt upgrade -y \
&& apt install -y apt-transport-https wget iproute2 \
&& wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& rm packages-microsoft-prod.deb \
&& apt update -y \
&& apt install -y aspnetcore-runtime-3.1 libgdiplus
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/3.1 | grep -i '<h3 id="sdk-3.*">SDK 3.1.*</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
COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]
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,21 +1,25 @@
FROM 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 \
&& apt upgrade -y \
&& apt install -y apt-transport-https wget iproute2 \
&& wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& rm packages-microsoft-prod.deb \
&& apt update -y \
&& apt install -y aspnetcore-runtime-5.0 libgdiplus
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/5.0 | grep -i '<h3 id="sdk-5.*">SDK 5.*.*</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
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/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"]

25
dotnet/6/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/6.0 | grep -i '<h3 id="sdk-6.*">SDK 6.*.*</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"]

25
dotnet/7/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/7.0 | grep -i '<h3 id="sdk-7.*">SDK 7.*.*</h3>' | head -1 | awk -F\" '{print $3}' | awk '{print $2;}' | sed 's/<\/h3>//g')" \
&& chmod +x dotnet-install.sh \
&& ./dotnet-install.sh -i /usr/share -v $D_V \
&& ln -s /usr/share/dotnet /usr/bin/dotnet
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

25
dotnet/8/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/8.0 | grep -i '<h3 id="sdk-8.*">SDK 8.*.*</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"]

25
dotnet/9/Dockerfile Normal file
View File

@@ -0,0 +1,25 @@
FROM --platform=$TARGETOS/$TARGETARCH ghcr.io/parkervcp/yolks:debian
LABEL author="Torsten Widmann" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y \
&& apt upgrade -y \
&& apt install -y apt-transport-https wget curl iproute2 libgdiplus tini \
&& wget https://dot.net/v1/dotnet-install.sh \
&& D_V="$(curl -sSL https://dotnet.microsoft.com/en-us/download/dotnet/9.0 | grep -i '<h3 id="sdk-9.*">SDK 9.*.*</h3>' | head -1 | awk -F\" '{print $3}' | awk '{print $2;}' | sed 's/<\/h3>//g')" \
&& chmod +x dotnet-install.sh \
&& ./dotnet-install.sh -i /usr/share -v $D_V \
&& ln -s /usr/share/dotnet /usr/bin/dotnet
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

View File

@@ -1,8 +1,16 @@
#!/bin/bash
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# Set environment variable that holds the Internal Docker IP
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
export INTERNAL_IP
# set this variable, dotnet needs it even without it it reports to `dotnet --info` it can not start any aplication without this
export DOTNET_ROOT=/usr/share/
# print the dotnet version on startup
printf "\033[1m\033[33mcontainer@pelican~ \033[0mdotnet --version\n"
dotnet --version
# Replace Startup Variables
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')

18
elixir/1.12/Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH elixir:1.12.3-slim
LABEL author="MrAvox" maintainer="mravox@proton.me"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg tini \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

18
elixir/1.13/Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH elixir:1.13.4-slim
LABEL author="MrAvox" maintainer="mravox@proton.me"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg tini \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

18
elixir/1.14/Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH elixir:1.14.5-slim
LABEL author="MrAvox" maintainer="mravox@proton.me"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg tini \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

18
elixir/1.15/Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH elixir:1.15.4-slim
LABEL author="MrAvox" maintainer="mravox@proton.me"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg tini \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

16
elixir/entrypoint.sh Normal file
View File

@@ -0,0 +1,16 @@
#!/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 ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Print Elixir Version
elixir -e 'IO.puts "Elixir " <> System.version()'
# Run the Server
eval ${MODIFIED_STARTUP}

18
elixir/latest/Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM --platform=$TARGETOS/$TARGETARCH elixir:slim
LABEL author="MrAvox" maintainer="mravox@proton.me"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg tini \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
STOPSIGNAL SIGINT
COPY --chown=container:container ./../entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

View File

@@ -1,11 +1,11 @@
FROM --platform=$BUILDPLATFORM erlang:22-alpine
FROM --platform=$TARGETOS/$TARGETARCH erlang:22-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata \
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \
&& adduser -D -h /home/container container
USER container

View File

@@ -1,11 +1,11 @@
FROM --platform=$BUILDPLATFORM erlang:23-alpine
FROM --platform=$TARGETOS/$TARGETARCH erlang:23-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata \
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2\
&& adduser -D -h /home/container container
USER container

View File

@@ -1,11 +1,11 @@
FROM --platform=$BUILDPLATFORM erlang:24-alpine
FROM --platform=$TARGETOS/$TARGETARCH erlang:24-alpine
LABEL author="Pascal Zarrad" maintainer="p.zarrad@outlook.de"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata \
RUN apk add --update --no-cache ca-certificates curl git openssl sqlite tar tzdata iproute2 \
&& adduser -D -h /home/container container
USER container

16
erlang/25/Dockerfile Normal file
View File

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

16
erlang/26/Dockerfile Normal file
View File

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

View File

@@ -3,23 +3,23 @@ TZ=${TZ:-UTC}
export TZ
# Set environment variable that holds the Internal Docker IP
INTERNAL_IP=$(ip route get 1 | awk '{print $NF;exit}')
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
export INTERNAL_IP
# Switch to the container's working directory
cd /home/container || exit 1
# Print 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()'
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
# variable format of "${VARIABLE}" before evaluating the string and automatically
# replacing the values.
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
PARSED=$(echo "$STARTUP" | sed -e 's/{{/${/g' -e 's/}}/}/g')
# Display the command we're running in the output, and then execute it with the env
# from the container itself.
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
# Display the command we're running in the output, and then execute it with eval
printf "\033[1m\033[33mcontainer@pelican~ \033[0m"
echo "$PARSED"
# shellcheck disable=SC2086
exec env ${PARSED}
eval "$PARSED"

35
games/altv/Dockerfile Normal file
View File

@@ -0,0 +1,35 @@
# ----------------------------------
# Environment: debian
# ----------------------------------
FROM --platform=$TARGETOS/$TARGETARCH node:16-bookworm
LABEL author="goover" maintainer="info@goover.de"
ENV DEBIAN_FRONTEND=noninteractive
RUN useradd -m -d /home/container -s /bin/bash container
RUN apt update -y \
&& apt upgrade -y \
&& apt install -y g++ gcc libgcc-s1 lib32gcc-s1 gdb libstdc++6 libc6 git wget curl tar zip unzip binutils xz-utils liblzo2-2 cabextract iproute2 net-tools netcat-traditional telnet libatomic1 libsdl1.2debian libsdl2-2.0-0 \
libfontconfig1 libicu72 icu-devtools libunwind8 libssl-dev sqlite3 libsqlite3-dev libmariadb-dev libduktape207 locales ffmpeg gnupg2 apt-transport-https software-properties-common ca-certificates tzdata libgdiplus\
python3 dnsutils build-essential coreutils jq pcregrep tini
RUN wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& apt update -y \
&& apt install -y dotnet-sdk-6.0 dotnet-sdk-7.0 dotnet-sdk-8.0 libgdiplus
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
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"]

13
games/altv/entrypoint.sh Normal file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
cd /home/container
# Set environment variable that holds the Internal Docker IP
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
export INTERNAL_IP
# Replace Startup Variables
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

View File

@@ -1,29 +1,58 @@
FROM ubuntu:20.04
FROM --platform=$TARGETOS/$TARGETARCH debian:bullseye-slim
LABEL author="David Wolfe (Red-Thirten)" maintainer="rehlmgaming@gmail.com"
ENV DEBIAN_FRONTEND noninteractive
ENV USER_NAME container
ENV NSS_WRAPPER_PASSWD /tmp/passwd
ENV NSS_WRAPPER_GROUP /tmp/group
LABEL author="David Wolfe (Red-Thirten)" maintainer="red_thirten@yahoo.com"
# Install Dependencies
LABEL org.opencontainers.image.source="https://github.com/parkervcp/yolks"
LABEL org.opencontainers.image.licenses=MIT
## Update base packages and install dependencies
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y libgcc-10-dev libstdc++-10-dev libtinfo5 lib64z1 libcurl3-gnutls \
&& apt-get install -y libnss-wrapper gettext-base tar curl gcc g++ libc6 libtbb2 lib32z1 lib32gcc1 lib32stdc++6 libsdl2-2.0-0 libsdl2-2.0-0:i386 libtbb2:i386 lib32stdc++6 libtinfo5:i386 libncurses5:i386 libcurl3-gnutls:i386 \
&& useradd -m -d /home/container -s /bin/bash container \
&& touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& apt-get install -y \
curl \
tzdata \
locales \
iproute2 \
gettext-base \
ca-certificates \
numactl \
libssl-dev \
lib32gcc-s1 \
libsdl2-2.0-0 \
libsdl2-2.0-0:i386 \
libstdc++6 \
libstdc++6:i386 \
lib32stdc++6 \
libnss-wrapper \
libnss-wrapper:i386 \
libtbb2 \
libtbb2:i386 \
tini
## Configure locale
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
## Prepare NSS Wrapper for the entrypoint as a workaround for Arma 3 requiring a valid UID
ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group
RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& chmod g+rw ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP}
ADD passwd.template /passwd.template
## Setup user and working directory
RUN useradd -m -d /home/container -s /bin/bash container
USER container
ENV HOME /home/container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./libnss_wrapper.so /libnss_wrapper.so
COPY ./libnss_wrapper_x64.so /libnss_wrapper_x64.so
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]
## Copy over entrypoint.sh and set permissions
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
## Start with Tini to pass future stop signals correctly
STOPSIGNAL SIGINT
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

View File

@@ -2,12 +2,13 @@
## File: Pterodactyl Arma 3 Image - entrypoint.sh
## Author: David Wolfe (Red-Thirten)
## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/)
## Date: 2021/07/13
## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/), Stephen White (SilK)
## Date: 2022/11/26
## License: MIT License
## === CONSTANTS ===
STEAMCMD_DIR="./steamcmd" # SteamCMD's directory containing steamcmd.sh
WORKSHOP_DIR="./Steam/steamapps/workshop" # SteamCMD's directory containing workshop downloads
STEAMCMD_LOG="${STEAMCMD_DIR}/steamcmd.log" # Log file for SteamCMD
GAME_ID=107410 # SteamCMD ID for the Arma 3 GAME (not server). Only used for Workshop mod downloads.
EGG_URL='https://github.com/parkervcp/eggs/tree/master/game_eggs/steamcmd_servers/arma/arma3' # URL for Pterodactyl Egg & Info (only used as info to legacy users)
@@ -20,7 +21,7 @@ RED='\033[0;31m'
NC='\033[0m' # No Color
## === ENVIRONMENT VARS ===
# STARTUP, STARTUP_PARAMS, STEAM_USER, STEAM_PASS, SERVER_BINARY, MOD_FILE, MODIFICATIONS, SERVERMODS, UPDATE_SERVER, CLEAR_CACHE, VALIDATE_SERVER, MODS_LOWERCASE, STEAMCMD_EXTRA_FLAGS, CDLC, STEAMCMD_APPID, HC_NUM, SERVER_PASSWORD, HC_HIDE, STEAMCMD_ATTEMPTS, BASIC_URL, DISABLE_MOD_UPDATES
# STARTUP, STARTUP_PARAMS, STEAM_USER, STEAM_PASS, SERVER_BINARY, MOD_FILE, MODIFICATIONS, SERVERMODS, OPTIONALMODS, UPDATE_SERVER, CLEAR_CACHE, VALIDATE_SERVER, MODS_LOWERCASE, STEAMCMD_EXTRA_FLAGS, CDLC, STEAMCMD_APPID, HC_NUM, SERVER_PASSWORD, HC_HIDE, STEAMCMD_ATTEMPTS, BASIC_URL, DISABLE_MOD_UPDATES
## === GLOBAL VARS ===
# validateServer, extraFlags, updateAttempt, modifiedStartup, allMods, CLIENT_MODS
@@ -28,7 +29,7 @@ NC='\033[0m' # No Color
## === DEFINE FUNCTIONS ===
#
# Runs SteamCMD with specified variables and performs error handling.
function RunSteamCMD { #[Input: int server=0 mod=1; int id]
function RunSteamCMD { #[Input: int server=0 mod=1 optional_mod=2; int id]
# Clear previous SteamCMD log
if [[ -f "${STEAMCMD_LOG}" ]]; then
rm -f "${STEAMCMD_LOG:?}"
@@ -46,14 +47,16 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id]
# Check if updating server or mod
if [[ $1 == 0 ]]; then # Server
${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +force_install_dir /home/container +app_update $2 $extraFlags $validateServer +quit | tee -a "${STEAMCMD_LOG}"
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}"
else # Mod
${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +workshop_download_item $GAME_ID $2 +quit | tee -a "${STEAMCMD_LOG}"
numactl --physcpubind=+0 ${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +workshop_download_item $GAME_ID $2 +quit | tee -a "${STEAMCMD_LOG}"
fi
# Error checking for SteamCMD
steamcmdExitCode=${PIPESTATUS[0]}
if [[ -n $(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL") ]]; then # Catch errors (ignore setlocale and SDL warnings)
# Catch errors (ignore setlocale, SDL, steamservice, thread priority, and libcurl warnings)
loggedErrors=$(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL\|steamservice\|thread\|libcurl")
if [[ -n ${loggedErrors} ]]; then
# Soft errors
if [[ -n $(grep -i "Timeout downloading item" "${STEAMCMD_LOG}") ]]; then # Mod download timeout
echo -e "\n${YELLOW}[UPDATE]: ${NC}Timeout downloading Steam Workshop mod: \"${CYAN}${modName}${NC}\" (${CYAN}${2}${NC})"
@@ -71,7 +74,8 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id]
echo -e "\n${RED}[UPDATE]: Cannot login to Steam - Improperly configured account and/or credentials"
echo -e "\t${YELLOW}Please contact your administrator/host and give them the following message:${NC}"
echo -e "\t${CYAN}Your Egg, or your client's server, is not configured with valid Steam credentials.${NC}"
echo -e "\t${CYAN}Either the username/password is wrong, or Steam Guard is not properly configured\n\taccording to this egg's documentation/README.${NC}\n"
echo -e "\t${CYAN}Either the username/password is wrong, or Steam Guard is not properly configured"
echo -e "\t${CYAN}according to this egg's documentation/README.${NC}\n"
exit 1
elif [[ -n $(grep -i "Download item" "${STEAMCMD_LOG}") ]]; then # Steam account does not own base game for mod downloads, or unknown
echo -e "\n${RED}[UPDATE]: Cannot download mod - Download failed"
@@ -85,17 +89,20 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id]
exit 1
elif [[ -n $(grep -i "0x606" "${STEAMCMD_LOG}") ]]; then # Disk write failure
echo -e "\n${RED}[UPDATE]: Unable to complete download - Disk write failure"
echo -e "\t${YELLOW}This is normally caused by directory permissions issues,\n\tbut could be a more serious hardware issue.${NC}"
echo -e "\t${YELLOW}This is normally caused by directory permissions issues,"
echo -e "\t${YELLOW}but could be a more serious hardware issue.${NC}"
echo -e "\t${YELLOW}(Please contact your administrator/host if this issue persists)${NC}\n"
exit 1
else # Unknown caught error
echo -e "\n${RED}[UPDATE]: ${YELLOW}An unknown error has occurred with SteamCMD. ${CYAN}Skipping download...${NC}"
echo -e "\t(Please contact your administrator/host if this issue persists)"
echo -e "SteamCMD Errors:\n${loggedErrors}"
echo -e "\t${YELLOW}(Please contact your administrator/host if this issue persists)${NC}\n"
break
fi
elif [[ $steamcmdExitCode != 0 ]]; then # Unknown fatal error
echo -e "\n${RED}[UPDATE]: SteamCMD has crashed for an unknown reason!${NC} (Exit code: ${CYAN}${steamcmdExitCode}${NC})"
echo -e "\t${YELLOW}(Please contact your administrator/host for support)${NC}\n"
cp -r /tmp/dumps /home/container/dumps
exit $steamcmdExitCode
else # Success!
if [[ $1 == 0 ]]; then # Server
@@ -104,13 +111,29 @@ function RunSteamCMD { #[Input: int server=0 mod=1; int id]
# Move the downloaded mod to the root directory, and replace existing mod if needed
mkdir -p ./@$2
rm -rf ./@$2/*
mv -f ./Steam/steamapps/workshop/content/$GAME_ID/$2/* ./@$2
rm -d ./Steam/steamapps/workshop/content/$GAME_ID/$2
mv -f ${WORKSHOP_DIR}/content/$GAME_ID/$2/* ./@$2
rm -d ${WORKSHOP_DIR}/content/$GAME_ID/$2
# Make the mods contents all lowercase
ModsLowercase @$2
# Move any .bikey's to the keys directory
echo -e "\tMoving any mod ${CYAN}.bikey${NC} files to the ${CYAN}~/keys/${NC} folder..."
find ./@$2 -name "*.bikey" -type f -exec cp {} ./keys \;
if [[ $1 == 1 ]]; then
find ./@$2 -name "*.bikey" -type f -exec cp {} ./keys \;
else
# Give optional mod keys a custom name which can be checked later for deleting unconfigured mods
for file in $(find ./@$2 -name "*.bikey" -type f); do
filename=$(basename ${file})
cp $file ./keys/optional_$2_${filename}
done;
echo -e "\tMod with ID $2 is an optional mod. Deleting original mod download folder..."
rm -r ./@$2
# Recreate a directory so time-based detection of auto updates works correctly
mkdir ./@$2_optional
fi
echo -e "${GREEN}[UPDATE]: Mod download/update successful!${NC}"
fi
break
@@ -150,9 +173,17 @@ function RemoveDuplicates { #[Input: str - Output: printf of new str]
}
# === ENTRYPOINT START ===
cd /home/container
# Wait for the container to fully initialize
sleep 1
# 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
# Check for old eggs
if [[ -z ${VALIDATE_SERVER} ]]; then # VALIDATE_SERVER was not in the previous version
echo -e "\n${RED}[STARTUP_ERR]: Please contact your administrator/host for support, and give them the following message:${NC}\n"
@@ -183,6 +214,11 @@ if [[ -n ${SERVERMODS} ]] && [[ ${SERVERMODS} != *\; ]]; then # Add server mods
else
allMods=${SERVERMODS}
fi
if [[ -n ${OPTIONALMODS} ]] && [[ ${OPTIONALMODS} != *\; ]]; then # Add specified optional mods to the mods list, while checking for trailing semicolon
allMods+="${OPTIONALMODS};"
else
allMods+=${OPTIONALMODS}
fi
allMods+=$CLIENT_MODS # Add all client-side mods to the master mod list
CLIENT_MODS=$(RemoveDuplicates ${CLIENT_MODS}) # Remove duplicate mods from CLIENT_MODS, if present
allMods=$(RemoveDuplicates ${allMods}) # Remove duplicate mods from allMods, if present
@@ -191,7 +227,7 @@ allMods=$(echo $allMods | sed -e 's/;/ /g') # Convert from string to array
# Update everything (server and mods), if specified
if [[ ${UPDATE_SERVER} == 1 ]]; then
echo -e "\n${GREEN}[STARTUP]: ${CYAN}Starting checks for all updates...${NC}"
echo -e "(It is okay to ignore any \"SDL\" errors during this process)\n"
echo -e "(It is okay to ignore any \"SDL\", \"steamservice\", and \"thread priority\" errors during this process)\n"
## Update game server
echo -e "${GREEN}[UPDATE]:${NC} Checking for game server updates with App ID: ${CYAN}${STEAMCMD_APPID}${NC}..."
@@ -223,16 +259,28 @@ if [[ ${UPDATE_SERVER} == 1 ]]; then
for modID in $(echo $allMods | sed -e 's/@//g')
do
if [[ $modID =~ ^[0-9]+$ ]]; then # Only check mods that are in ID-form
# If a mod is defined in OPTIONALMODS, and is not defined in CLIENT_MODS or SERVERMODS, then treat as an optional mod
# Optional mods are given a different directory which is checked to see if a new update is available. This is to ensure
# if an optional mod is switched to be a standard client-side mod, this script will redownload the mod
if [[ "${OPTIONALMODS}" == *"@${modID};"* ]] && [[ "${CLIENT_MODS}" != *"@${modID};"* ]] && [[ "${SERVERMODS}" != *"@${modID};"* ]]; then
modType=2
modDir=@${modID}_optional
else
modType=1
modDir=@${modID}
fi
# Get mod's latest update in epoch time from its Steam Workshop changelog page
latestUpdate=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep '<p id=' | head -1 | cut -d'"' -f2)
# If the update time is valid and newer than the local directory's creation date, or the mod hasn't been downloaded yet, download the mod
if [[ ! -d @$modID ]] || [[ ( -n $latestUpdate ) && ( $latestUpdate =~ ^[0-9]+$ ) && ( $latestUpdate > $(find @$modID | head -1 | xargs stat -c%Y) ) ]]; then
if [[ ! -d $modDir ]] || [[ ( -n $latestUpdate ) && ( $latestUpdate =~ ^[0-9]+$ ) && ( $latestUpdate > $(find $modDir | head -1 | xargs stat -c%Y) ) ]]; then
# Get the mod's name from the Workshop page as well
modName=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep 'workshopItemTitle' | cut -d'>' -f2 | cut -d'<' -f1)
if [[ -z $modName ]]; then # Set default name if unavailable
modName="[NAME UNAVAILABLE]"
fi
if [[ ! -d @$modID ]]; then
if [[ ! -d $modDir ]]; then
echo -e "\n${GREEN}[UPDATE]:${NC} Downloading new Mod: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})"
else
echo -e "\n${GREEN}[UPDATE]:${NC} Mod update found for: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})"
@@ -240,11 +288,43 @@ if [[ ${UPDATE_SERVER} == 1 ]]; then
if [[ -n $latestUpdate ]] && [[ $latestUpdate =~ ^[0-9]+$ ]]; then # Notify last update date, if valid
echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}"
fi
# Delete SteamCMD appworkshop cache before running to avoid mod download failures
echo -e "\tClearing SteamCMD appworkshop cache..."
rm -f ${WORKSHOP_DIR}/appworkshop_$GAME_ID.acf
echo -e "\tAttempting mod update/download via SteamCMD...\n"
RunSteamCMD 1 $modID
RunSteamCMD $modType $modID
fi
fi
done
# Check over key files for unconfigured optional mods' .bikey files
for keyFile in $(find ./keys -name "*.bikey" -type f); do
keyFileName=$(basename ${keyFile})
# If the key file is using the optional mod file name
if [[ "${keyFileName}" == "optional_"* ]]; then
modID=$(echo "${keyFileName}" | cut -d _ -f 2)
# If mod is not in optional mods, delete it
# If a mod is configured in CLIENT_MODS or SERVERMODS, we should still delete this file
# as a new file will have been copied that does not follow the naming scheme
if [[ "${OPTIONALMODS}" != *"@${modID};"* ]]; then
# We only need to let the user know the key file is being deleted if this mod is no longer configured at all.
# If CLIENT_MODS contains the mod ID, we'd just confuse the user by telling them we are deleting the optional .bikey file
if [[ "${CLIENT_MODS}" != *"@${modID};"* ]]; then
echo -e "\tKey file and directory for unconfigured optional mod ${CYAN}${modID}${NC} is being deleted..."
fi
# Delete the optional mod .bikey file and directory
rm ${keyFile}
rmdir ./@${modID}_optional 2> /dev/null
fi
fi
done;
echo -e "${GREEN}[UPDATE]:${NC} Steam Workshop mod update check ${GREEN}complete${NC}!"
fi
fi
@@ -267,6 +347,12 @@ if [[ ${MODS_LOWERCASE} == "1" ]]; then
done
fi
# Define the log file path with a timestamp
LOG_FILE="/home/container/serverprofile/rpt/arma3server_$(date '+%m_%d_%Y_%H%M%S').rpt"
# Ensure the logs directory exists
mkdir -p /home/container/serverprofile/rpt
# Clear HC cache, if specified
if [[ ${CLEAR_CACHE} == "1" ]]; then
echo -e "\n${GREEN}[STARTUP]: ${CYAN}Clearing Headless Client profiles cache...${NC}"
@@ -284,15 +370,15 @@ if [[ ! -f ./basic.cfg ]]; then
curl -sSL ${BASIC_URL} -o ./basic.cfg
fi
# $NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile
# Setup NSS Wrapper for use ($NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile)
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
envsubst < /passwd.template > ${NSS_WRAPPER_PASSWD}
if [[ ${SERVER_BINARY} == *"x64"* ]]; then # Check which libnss_wrapper architecture to run, based off the server binary name
export LD_PRELOAD=/libnss_wrapper_x64.so
if [[ ${SERVER_BINARY} == *"x64"* ]]; then # Check which libnss-wrapper architecture to run, based off the server binary name
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss_wrapper.so
else
export LD_PRELOAD=/libnss_wrapper.so
export LD_PRELOAD=/usr/lib/i386-linux-gnu/libnss_wrapper.so
fi
# Replace Startup Variables
@@ -316,7 +402,11 @@ fi
# Start the Server
echo -e "\n${GREEN}[STARTUP]:${NC} Starting server with the following startup command:"
echo -e "${CYAN}${modifiedStartup}${NC}\n"
${modifiedStartup}
if [[ "$STARTUP_PARAMS" == *"-noLogs"* ]]; then
${modifiedStartup}
else
${modifiedStartup} 2>&1 | tee -a "$LOG_FILE"
fi
if [ $? -ne 0 ]; then
echo -e "\n${RED}PTDL_CONTAINER_ERR: There was an error while attempting to run the start command.${NC}\n"

Binary file not shown.

Binary file not shown.

View File

@@ -23,4 +23,4 @@ systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
syslog:x:104:108::/home/syslog:/bin/false
messagebus:x:106:109::/var/run/dbus:/bin/false
bind:x:108:112::/var/cache/bind:/bin/false
${USER_NAME}:x:${USER_ID}:${GROUP_ID}:${USER_NAME}:${HOME}:/bin/bash
${USER}:x:${USER_ID}:${GROUP_ID}:${USER}:${HOME}:/bin/bash

60
games/dayz/Dockerfile Normal file
View File

@@ -0,0 +1,60 @@
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="David Wolfe (Red-Thirten)" maintainer="red_thirten@yahoo.com"
LABEL org.opencontainers.image.source="https://github.com/pelican-eggs/yolks"
LABEL org.opencontainers.image.licenses=MIT
## Update base packages and install dependencies
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 \
&& apt update \
&& apt upgrade -y \
&& apt install -y \
curl \
tzdata \
locales \
iproute2 \
gettext-base \
ca-certificates \
libssl-dev \
lib32gcc-s1 \
libsdl2-2.0-0 \
libsdl2-2.0-0:i386 \
libstdc++6 \
libstdc++6:i386 \
lib32stdc++6 \
libcap2 \
libnss-wrapper \
tini
## install rcon client (bercon)
RUN cd /tmp/ \
&& curl -sSL https://github.com/WoozyMasta/bercon/releases/download/1.0.0/bercon > bercon \
&& mv bercon /usr/local/bin/ \
&& chmod +x /usr/local/bin/bercon
## Configure locale
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
## Prepare NSS Wrapper for the entrypoint as a workaround for DayZ requiring a valid UID
ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group
RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& chmod g+rw ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP}
ADD passwd.template /passwd.template
## 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 over and execute entrypoint.sh via Tini
COPY --chown=container:container ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
CMD ["/entrypoint.sh"]

2
games/dayz/README.md Normal file
View File

@@ -0,0 +1,2 @@
# DayZ
Docker container designed to run Bohemia Interactive's DayZ dedicated server.

293
games/dayz/entrypoint.sh Normal file
View File

@@ -0,0 +1,293 @@
#!/bin/bash
## File: DayZ Image - entrypoint.sh
## Author: David Wolfe (Red-Thirten)
## Contributors: Aussie Server Hosts (https://aussieserverhosts.com/)
## Date: 2024/06/05
## License: MIT License
## === CONSTANTS ===
STEAMCMD_DIR="./steamcmd" # SteamCMD's directory containing steamcmd.sh
WORKSHOP_DIR="./Steam/steamapps/workshop" # SteamCMD's directory containing workshop downloads
STEAMCMD_LOG="${STEAMCMD_DIR}/steamcmd.log" # Log file for SteamCMD
GAME_ID=221100 # SteamCMD ID for the DayZ GAME (not server). Only used for Workshop mod downloads.
# Color Codes
CYAN='\033[0;36m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
## === ENVIRONMENT VARS ===
# STARTUP, STARTUP_PARAMS, STEAM_USER, STEAM_PASS, SERVER_BINARY, MOD_FILE, MODIFICATIONS, SERVERMODS, UPDATE_SERVER, VALIDATE_SERVER, MODS_LOWERCASE, STEAMCMD_EXTRA_FLAGS, STEAMCMD_APPID, SERVER_PASSWORD, STEAMCMD_ATTEMPTS, DISABLE_MOD_UPDATES
## === GLOBAL VARS ===
# validateServer, extraFlags, updateAttempt, modifiedStartup, allMods, CLIENT_MODS
## === DEFINE FUNCTIONS ===
# Runs SteamCMD with specified variables and performs error handling.
function RunSteamCMD { #[Input: int server=0 mod=1; int id]
# Clear previous SteamCMD log
if [[ -f "${STEAMCMD_LOG}" ]]; then
rm -f "${STEAMCMD_LOG:?}"
fi
updateAttempt=0
while (( $updateAttempt < $STEAMCMD_ATTEMPTS )); do # Loop for specified number of attempts
# Increment attempt counter
updateAttempt=$((updateAttempt+1))
if (( $updateAttempt > 1 )); then # Notify if not first attempt
echo -e "\t${YELLOW}Re-Attempting download/update in 3 seconds...${NC} (Attempt ${CYAN}${updateAttempt}${NC} of ${CYAN}${STEAMCMD_ATTEMPTS}${NC})\n"
sleep 3
fi
# Check if updating server or mod
if [[ $1 == 0 ]]; then # Server
${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
${STEAMCMD_DIR}/steamcmd.sh "+login \"${STEAM_USER}\" \"${STEAM_PASS}\"" +workshop_download_item $GAME_ID $2 +quit | tee -a "${STEAMCMD_LOG}"
fi
# Error checking for SteamCMD
steamcmdExitCode=${PIPESTATUS[0]}
# Catch errors (ignore setlocale, SDL, steamservice, thread priority, and libcurl warnings)
loggedErrors=$(grep -i "error\|failed" "${STEAMCMD_LOG}" | grep -iv "setlocal\|SDL\|steamservice\|thread\|libcurl")
if [[ -n ${loggedErrors} ]]; then
# Soft errors
if [[ -n $(grep -i "Timeout downloading item" "${STEAMCMD_LOG}") ]]; then # Mod download timeout
echo -e "\n${YELLOW}[UPDATE]: ${NC}Timeout downloading Steam Workshop mod: \"${CYAN}${modName}${NC}\" (${CYAN}${2}${NC})"
echo -e "\t(This is expected for particularly large mods)"
elif [[ -n $(grep -i "0x402\|0x6\|0x602" "${STEAMCMD_LOG}") ]]; then # Connection issue with Steam
echo -e "\n${YELLOW}[UPDATE]: ${NC}Connection issue with Steam servers."
echo -e "\t(Steam servers may currently be down, or a connection cannot be made reliably)"
# Hard errors
elif [[ -n $(grep -i "Password check for AppId" "${STEAMCMD_LOG}") ]]; then # Incorrect beta branch password
echo -e "\n${RED}[UPDATE]: ${YELLOW}Incorrect password given for beta branch. ${CYAN}Skipping download...${NC}"
echo -e "\t(Check your \"[ADVANCED] EXTRA FLAGS FOR STEAMCMD\" startup parameter)"
break
# Fatal errors
elif [[ -n $(grep -i "Invalid Password\|two-factor\|No subscription" "${STEAMCMD_LOG}") ]]; then # Wrong username/password, Steam Guard is turned on, or host is using anonymous account
echo -e "\n${RED}[UPDATE]: Cannot login to Steam - Improperly configured account and/or credentials"
echo -e "\t${YELLOW}Please contact your administrator/host and give them the following message:${NC}"
echo -e "\t${CYAN}Your Egg, or your client's server, is not configured with valid Steam credentials.${NC}"
echo -e "\t${CYAN}Either the username/password is wrong, or Steam Guard is not properly configured\n\taccording to this egg's documentation/README.${NC}\n"
exit 1
elif [[ -n $(grep -i "Download item" "${STEAMCMD_LOG}") ]]; then # Steam account does not own base game for mod downloads, or unknown
echo -e "\n${RED}[UPDATE]: Cannot download mod - Download failed"
echo -e "\t${YELLOW}While unknown, this error is likely due to your host's Steam account not owning the base game.${NC}"
echo -e "\t${YELLOW}(Please contact your administrator/host if this issue persists)${NC}\n"
exit 1
elif [[ -n $(grep -i "0x202\|0x212" "${STEAMCMD_LOG}") ]]; then # Not enough disk space
echo -e "\n${RED}[UPDATE]: Unable to complete download - Not enough storage"
echo -e "\t${YELLOW}You have run out of your allotted disk space.${NC}"
echo -e "\t${YELLOW}Please contact your administrator/host for potential storage upgrades.${NC}\n"
exit 1
elif [[ -n $(grep -i "0x606" "${STEAMCMD_LOG}") ]]; then # Disk write failure
echo -e "\n${RED}[UPDATE]: Unable to complete download - Disk write failure"
echo -e "\t${YELLOW}This is normally caused by directory permissions issues,\n\tbut could be a more serious hardware issue.${NC}"
echo -e "\t${YELLOW}(Please contact your administrator/host if this issue persists)${NC}\n"
exit 1
else # Unknown caught error
echo -e "\n${RED}[UPDATE]: ${YELLOW}An unknown error has occurred with SteamCMD. ${CYAN}Skipping download...${NC}"
echo -e "\t(Please contact your administrator/host if this issue persists)"
break
fi
elif [[ $steamcmdExitCode != 0 ]]; then # Unknown fatal error
echo -e "\n${RED}[UPDATE]: SteamCMD has crashed for an unknown reason!${NC} (Exit code: ${CYAN}${steamcmdExitCode}${NC})"
echo -e "\t${YELLOW}(Please contact your administrator/host for support)${NC}\n"
cp -r /tmp/dumps /home/container/dumps
exit $steamcmdExitCode
else # Success!
if [[ $1 == 0 ]]; then # Server
echo -e "\n${GREEN}[UPDATE]: Game server is up to date!${NC}"
else # Mod
# Move the downloaded mod to the root directory, and replace existing mod if needed
mkdir -p ./@$2
rm -rf ./@$2/*
mv -f ${WORKSHOP_DIR}/content/$GAME_ID/$2/* ./@$2
rm -d ${WORKSHOP_DIR}/content/$GAME_ID/$2
# Make the mods contents all lowercase
ModsLowercase @$2
# Move any .bikey's to the keys directory
echo -e "\tMoving any mod ${CYAN}.bikey${NC} files to the ${CYAN}~/keys/${NC} folder..."
find ./@$2 -name "*.bikey" -type f -exec cp {} ./keys \;
echo -e "${GREEN}[UPDATE]: Mod download/update successful!${NC}"
fi
break
fi
if (( $updateAttempt == $STEAMCMD_ATTEMPTS )); then # Notify if failed last attempt
if [[ $1 == 0 ]]; then # Server
echo -e "\t${RED}Final attempt made! ${YELLOW}Unable to complete game server update. ${CYAN}Skipping...${NC}"
echo -e "\t(Please try again at a later time)"
sleep 3
else # Mod
echo -e "\t${RED}Final attempt made! ${YELLOW}Unable to complete mod download/update. ${CYAN}Skipping...${NC}"
echo -e "\t(You may try again later, or manually upload this mod to your server via SFTP)"
sleep 3
fi
fi
done
}
# Takes a directory (string) as input, and recursively makes all files & folders lowercase.
function ModsLowercase {
echo -e "\n\tMaking mod ${CYAN}$1${NC} files/folders lowercase..."
for SRC in `find ./$1 -depth`
do
DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'`
if [ "${SRC}" != "${DST}" ]
then
[ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}"
fi
done
}
# Removes duplicate items from a semicolon delimited string
function RemoveDuplicates { #[Input: str - Output: printf of new str]
if [[ -n $1 ]]; then # If nothing to compare, skip to prevent extra semicolon being returned
echo $1 | sed -e 's/;/\n/g' | sort -u | xargs printf '%s;'
fi
}
## === ENTRYPOINT START ===
# Wait for the container to fully initialize
sleep 1
# 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
# Collect and parse all specified mods
if [[ -n ${MODIFICATIONS} ]] && [[ ${MODIFICATIONS} != *\; ]]; then # Add manually specified mods to the client-side mods list, while checking for trailing semicolon
CLIENT_MODS="${MODIFICATIONS};"
else
CLIENT_MODS=${MODIFICATIONS}
fi
# If the mod list file exists and is valid, parse and add mods to the client-side mods list
if [[ -f ${MOD_FILE} ]] && [[ -n "$(cat ${MOD_FILE} | grep 'Created by DayZ Launcher')" ]]; then
CLIENT_MODS+=$(cat ${MOD_FILE} | grep 'id=' | cut -d'=' -f3 | cut -d'"' -f1 | xargs printf '@%s;')
elif [[ -n "${MOD_FILE}" ]]; then # If MOD_FILE is not null, warn user file is missing or invalid
echo -e "\n${YELLOW}[STARTUP_WARN]: DayZ Modlist file \"${CYAN}${MOD_FILE}${YELLOW}\" could not be found, or is invalid!${NC}"
echo -e "\tEnsure your uploaded modlist's file name matches your Startup Parameter."
echo -e "\tOnly files exported from a DayZ Launcher are permitted."
if [[ -n "${CLIENT_MODS}" ]]; then
echo -e "\t${CYAN}Reverting to the manual mod list...${NC}"
fi
fi
# Add server mods to the master mods list, while checking for trailing semicolon
if [[ -n ${SERVERMODS} ]] && [[ ${SERVERMODS} != *\; ]]; then
allMods="${SERVERMODS};"
else
allMods=${SERVERMODS}
fi
allMods+=$CLIENT_MODS # Add all client-side mods to the master mod list
CLIENT_MODS=$(RemoveDuplicates ${CLIENT_MODS}) # Remove duplicate mods from CLIENT_MODS, if present
allMods=$(RemoveDuplicates ${allMods}) # Remove duplicate mods from allMods, if present
allMods=$(echo $allMods | sed -e 's/;/ /g') # Convert from string to array
# Update everything (server and mods), if specified
if [[ ${UPDATE_SERVER} == 1 ]]; then
echo -e "\n${GREEN}[STARTUP]: ${CYAN}Starting checks for all updates...${NC}"
echo -e "(It is okay to ignore any \"SDL\" and \"thread priority\" errors during this process)\n"
## Update game server
echo -e "${GREEN}[UPDATE]:${NC} Checking for game server updates with App ID: ${CYAN}${STEAMCMD_APPID}${NC}..."
if [[ ${VALIDATE_SERVER} == 1 ]]; then # Validate will be added as a parameter if specified
echo -e "\t${CYAN}File validation enabled.${NC} (This may take extra time to complete)"
validateServer="validate"
else
validateServer=""
fi
# Determine what extra flags should be set
if [[ -n ${STEAMCMD_EXTRA_FLAGS} ]]; then
echo -e "\t(${YELLOW}Advanced${NC}) Extra SteamCMD flags specified: ${CYAN}${STEAMCMD_EXTRA_FLAGS}${NC}\n"
extraFlags=${STEAMCMD_EXTRA_FLAGS}
else
echo -e ""
extraFlags=""
fi
RunSteamCMD 0 ${STEAMCMD_APPID}
## Update mods
if [[ -n $allMods ]] && [[ ${DISABLE_MOD_UPDATES} != 1 ]]; then
echo -e "\n${GREEN}[UPDATE]:${NC} Checking all ${CYAN}Steam Workshop mods${NC} for updates..."
for modID in $(echo $allMods | sed -e 's/@//g')
do
if [[ $modID =~ ^[0-9]+$ ]]; then # Only check mods that are in ID-form
# Get mod's latest update in epoch time from its Steam Workshop changelog page
latestUpdate=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep '<p id=' | head -1 | cut -d'"' -f2)
# If the update time is valid and newer than the local directory's creation date, or the mod hasn't been downloaded yet, download the mod
if [[ ! -d @$modID ]] || [[ ( -n $latestUpdate ) && ( $latestUpdate =~ ^[0-9]+$ ) && ( $latestUpdate > $(find @$modID | head -1 | xargs stat -c%Y) ) ]]; then
# Get the mod's name from the Workshop page as well
modName=$(curl -sL https://steamcommunity.com/sharedfiles/filedetails/changelog/$modID | grep 'workshopItemTitle' | cut -d'>' -f2 | cut -d'<' -f1)
if [[ -z $modName ]]; then # Set default name if unavailable
modName="[NAME UNAVAILABLE]"
fi
if [[ ! -d @$modID ]]; then
echo -e "\n${GREEN}[UPDATE]:${NC} Downloading new Mod: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})"
else
echo -e "\n${GREEN}[UPDATE]:${NC} Mod update found for: \"${CYAN}${modName}${NC}\" (${CYAN}${modID}${NC})"
fi
if [[ -n $latestUpdate ]] && [[ $latestUpdate =~ ^[0-9]+$ ]]; then # Notify last update date, if valid
echo -e "\tMod was last updated: ${CYAN}$(date -d @${latestUpdate})${NC}"
fi
# Delete SteamCMD appworkshop cache before running to avoid mod download failures
echo -e "\tClearing SteamCMD appworkshop cache..."
rm -f ${WORKSHOP_DIR}/appworkshop_$GAME_ID.acf
echo -e "\tAttempting mod update/download via SteamCMD...\n"
RunSteamCMD 1 $modID
fi
fi
done
echo -e "${GREEN}[UPDATE]:${NC} Steam Workshop mod update check ${GREEN}complete${NC}!"
fi
fi
# Check if specified server binary exists.
if [[ ! -f ./${SERVER_BINARY} ]]; then
echo -e "\n${RED}[STARTUP_ERR]: Specified DayZ server binary could not be found in the root directory!${NC}"
echo -e "${YELLOW}Please do the following to resolve this issue:${NC}"
echo -e "\t${CYAN}- Double check your \"Server Binary\" Startup Variable is correct.${NC}"
echo -e "\t${CYAN}- Ensure your server has properly installed/updated without errors (reinstalling/updating again may help).${NC}"
echo -e "\t${CYAN}- Use the File Manager to check that your specified server binary file is not missing from the root directory.${NC}\n"
exit 1
fi
# Make mods lowercase, if specified
if [[ ${MODS_LOWERCASE} == "1" ]]; then
for modDir in $allMods
do
ModsLowercase $modDir
done
fi
# Setup NSS Wrapper for use ($NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile)
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
envsubst < /passwd.template > ${NSS_WRAPPER_PASSWD}
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss_wrapper.so
# Replace Startup Variables
modifiedStartup=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')`
# Start the Server
echo -e "\n${GREEN}[STARTUP]:${NC} Starting server with the following startup command:"
echo -e "${CYAN}${modifiedStartup}${NC}\n"
${modifiedStartup}
if [ $? -ne 0 ]; then
echo -e "\n${RED}[STARTUP_ERR]: There was an error while attempting to run the start command.${NC}\n"
exit 1
fi

View File

@@ -0,0 +1,26 @@
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
syslog:x:104:108::/home/syslog:/bin/false
messagebus:x:106:109::/var/run/dbus:/bin/false
bind:x:108:112::/var/cache/bind:/bin/false
${USER}:x:${USER_ID}:${GROUP_ID}:${USER}:${HOME}:/bin/bash

16
games/minetest/Dockerfile Normal file
View File

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

View File

@@ -0,0 +1,23 @@
#!/bin/bash
# Default the TZ environment variable to UTC.
TZ=${TZ:-UTC}
export TZ
# Set environment variable that holds the Internal Docker IP
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
export INTERNAL_IP
# Switch to the container's working directory
cd /home/container || exit 1
# Print minetest version
printf "\033[1m\033[33mcontainer@pelican~ \033[0mminetest --version\n"
minetest --version
# Replace Startup Variables
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

12
games/mohaa/Dockerfile Normal file
View File

@@ -0,0 +1,12 @@
FROM ghcr.io/parkervcp/yolks:debian
LABEL author="Manuel Dielacher" maintainer="th3dilli@gmx.at"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks"
LABEL org.opencontainers.image.licenses=MIT
RUN dpkg --add-architecture i386 \
&& apt update && apt upgrade -y \
&& apt install -y lib32gcc-s1 lib32stdc++6 libstdc++5:i386

13
games/mohaa/entrypoint.sh Normal file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
cd /home/container
# Set environment variable that holds the Internal Docker IP
INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}')
export INTERNAL_IP
# Replace Startup Variables
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

23
games/mta/Dockerfile Normal file
View File

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

13
games/mta/entrypoint.sh Normal file
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}

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();

33
games/samp/Dockerfile Normal file
View File

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

12
games/samp/entrypoint.sh Normal file
View File

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

View File

@@ -20,7 +20,7 @@
# SOFTWARE.
#
FROM --platform=$BUILDPLATFORM debian:stable-slim
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io"
@@ -30,14 +30,67 @@ LABEL org.opencontainers.image.licenses=MIT
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 \
&& apt update \
&& apt upgrade -y \
&& apt install -y tar curl gcc g++ lib32gcc-s1 libgcc1 libcurl4-gnutls-dev:i386 libssl1.1:i386 libcurl4:i386 lib32tinfo6 libtinfo6:i386 lib32z1 lib32stdc++6 libncurses5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 iproute2 gdb libsdl1.2debian libfontconfig1 telnet net-tools netcat tzdata \
&& useradd -m -d /home/container container
&& apt update \
&& apt upgrade -y \
&& apt install -y \
curl \
g++ \
gcc \
gdb \
iproute2 \
locales \
net-tools \
netcat-traditional \
tar \
telnet \
tini \
tzdata \
wget \
lib32gcc-s1 \
lib32stdc++6 \
lib32tinfo6 \
lib32z1 \
libcurl3-gnutls:i386 \
libcurl4-gnutls-dev:i386 \
libcurl4:i386 \
libfontconfig1 \
libgcc-11-dev \
libgcc-12-dev \
libncurses5:i386 \
libsdl1.2debian \
libsdl2-2.0-0:i386 \
libssl-dev:i386 \
libtinfo6:i386 \
# Install rcon
RUN cd /tmp/ \
&& curl -sSL https://github.com/gorcon/rcon-cli/releases/download/v0.10.3/rcon-0.10.3-amd64_linux.tar.gz > rcon.tar.gz \
&& tar xvf rcon.tar.gz \
&& mv rcon-0.10.3-amd64_linux/rcon /usr/local/bin/
# Temp fix for things that still need libssl1.1
RUN if [ "$(uname -m)" = "x86_64" ]; then \
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb && \
dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb && \
rm libssl1.1_1.1.0g-2ubuntu4_amd64.deb; \
fi
# 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
CMD [ "/bin/bash", "/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

@@ -22,21 +22,20 @@
# SOFTWARE.
#
# 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;exit}')
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
# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell
# variable format of "${VARIABLE}" before evaluating the string and automatically
# replacing the values.
PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)")
## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then
@@ -53,7 +52,7 @@ fi
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then
./steamcmd/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir /home/container +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || printf %s "validate" ) +quit
./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || printf %s "validate" ) +quit
else
echo -e "No appid set. Starting Server"
fi
@@ -62,8 +61,9 @@ else
echo -e "Not updating game server as auto update was set to 0. Starting Server"
fi
# Display the command we're running in the output, and then execute it with the env
# from the container itself.
printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED"
# shellcheck disable=SC2086
exec env ${PARSED}
# Replace Startup Variables
MODIFIED_STARTUP=$(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

View File

@@ -0,0 +1,25 @@
FROM --platform=$TARGETOS/$TARGETARCH debian:bookworm-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
## update base packages
RUN apt update && apt upgrade -y
## install dependencies
RUN apt install -y gcc g++ libgcc1 libc++-dev gdb libc6 git tar zip unzip libssl-dev tini iproute2 \
libboost-filesystem-dev libboost-iostreams-dev libboost-locale-dev libboost-random-dev libboost-regex-dev libboost-program-options-dev libboost-system-dev libboost-coroutine-dev libboost-graph-dev \
libsdl2-dev libcurl4-openssl-dev libcairo2-dev libvorbis-dev libbz2-dev zlib1g-dev libssl-dev libcrypto++-dev openssl cmake libsdl2-image-dev libsdl2-mixer-dev libsdl-pango-dev
## add container user
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

@@ -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 ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

42
games/valheim/Dockerfile Normal file
View File

@@ -0,0 +1,42 @@
FROM --platform=$TARGETOS/$TARGETARCH ubuntu:22.04
LABEL author="Daniel Barton" maintainer="danny6167@gmail.com"
ENV DEBIAN_FRONTEND=noninteractive
## add container user
RUN useradd -m -d /home/container -s /bin/bash container
RUN dpkg --add-architecture i386 \
&& apt update \
&& apt upgrade -y \
&& apt install -y libcurl4-gnutls-dev:i386 libssl3:i386 libcurl4:i386 lib32tinfo6 libtinfo6:i386 lib32z1 lib32stdc++6 libncurses5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 \
gcc g++ libgcc1 libc++-dev gdb libc6 curl tar iproute2 net-tools libatomic1 libsdl1.2debian libsdl2-2.0-0 \
libfontconfig locales libcurl3-gnutls libpulse-dev libpulse0 libnss-wrapper gettext tini
## configure locale
RUN update-locale lang=en_US.UTF-8 \
&& dpkg-reconfigure --frontend noninteractive locales
ENV USER=container HOME=/home/container
WORKDIR /home/container
## Prepare NSS Wrapper for the entrypoint as a workaround for Valheim requiring a valid UID
ENV NSS_WRAPPER_PASSWD=/tmp/passwd NSS_WRAPPER_GROUP=/tmp/group
RUN touch ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& chgrp 0 ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP} \
&& chmod g+rw ${NSS_WRAPPER_PASSWD} ${NSS_WRAPPER_GROUP}
ADD passwd.template /passwd.template
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

@@ -0,0 +1,46 @@
#!/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
## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then
echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n"
STEAM_USER=anonymous
STEAM_PASS=""
STEAM_AUTH=""
else
echo -e "user set to ${STEAM_USER}"
fi
## if auto_update is not set or to 1 update
if [ -z ${AUTO_UPDATE} ] || [ "${AUTO_UPDATE}" == "1" ]; then
# Update Source Server
if [ ! -z ${SRCDS_APPID} ]; then
./steamcmd/steamcmd.sh +force_install_dir /home/container +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) $( [[ -z ${HLDS_GAME} ]] || printf %s "+app_set_config 90 mod ${HLDS_GAME}" ) $( [[ -z ${VALIDATE} ]] || printf %s "validate" ) +quit
else
echo -e "No appid set. Starting Server"
fi
else
echo -e "Not updating game server as auto update was set to 0. Starting Server"
fi
# Setup NSS Wrapper for use ($NSS_WRAPPER_PASSWD and $NSS_WRAPPER_GROUP have been set by the Dockerfile)
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
envsubst < /passwd.template > ${NSS_WRAPPER_PASSWD}
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss_wrapper.so
# Replace Startup Variables
MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

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