migrate from drone to gitea-runner
Build Container Image / build_arm64 (push) Successful in 2m9s
Details
Build Container Image / publish_arm64 (push) Successful in 20s
Details
Build Container Image / build_riscv64 (push) Successful in 2m32s
Details
Build Container Image / build_armhf (push) Successful in 18s
Details
Build Container Image / publish_riscv64 (push) Successful in 29s
Details
Build Container Image / publish_armhf (push) Successful in -2m9s
Details
Build Container Image / build_amd64 (push) Successful in 59s
Details
Build Container Image / publish_amd64 (push) Successful in 36s
Details
Build Container Image / build_manifest (push) Failing after -2m35s
Details
Build Container Image / publish_manifest (push) Failing after 17s
Details
Build Container Image / build_arm64 (push) Successful in 2m9s
Details
Build Container Image / publish_arm64 (push) Successful in 20s
Details
Build Container Image / build_riscv64 (push) Successful in 2m32s
Details
Build Container Image / build_armhf (push) Successful in 18s
Details
Build Container Image / publish_riscv64 (push) Successful in 29s
Details
Build Container Image / publish_armhf (push) Successful in -2m9s
Details
Build Container Image / build_amd64 (push) Successful in 59s
Details
Build Container Image / publish_amd64 (push) Successful in 36s
Details
Build Container Image / build_manifest (push) Failing after -2m35s
Details
Build Container Image / publish_manifest (push) Failing after 17s
Details
This commit is contained in:
parent
051fe29d43
commit
0a2dc00932
|
@ -1,5 +1,6 @@
|
|||
.drone.yml
|
||||
.git
|
||||
.gitea
|
||||
.gitignore
|
||||
LICENSE.md
|
||||
README.md
|
||||
|
|
69
.drone.yml
69
.drone.yml
|
@ -1,69 +0,0 @@
|
|||
---
|
||||
kind: pipeline
|
||||
type: exec
|
||||
name: default
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
environment:
|
||||
PDR_USER:
|
||||
from_secret: docker-user-pdr
|
||||
PDR_PASS:
|
||||
from_secret: docker-pass-pdr
|
||||
commands:
|
||||
- docker build -t pdr.nephatrine.net/nephatrine/quake2-server:cached --target builder .
|
||||
- docker build -t pdr.nephatrine.net/nephatrine/quake2-server:latest .
|
||||
- docker build -t pdr.nephatrine.net/nephatrine/quake2-server:nginx . -f Dockerfile.nginx
|
||||
- docker login -p "$PDR_PASS" -u "$PDR_USER" pdr.nephatrine.net
|
||||
- docker push pdr.nephatrine.net/nephatrine/quake2-server:latest
|
||||
- docker push pdr.nephatrine.net/nephatrine/quake2-server:nginx
|
||||
- docker logout pdr.nephatrine.net
|
||||
- name: publish
|
||||
environment:
|
||||
DOCKER_USER:
|
||||
from_secret: docker-user
|
||||
DOCKER_PASS:
|
||||
from_secret: docker-pass
|
||||
commands:
|
||||
- docker tag pdr.nephatrine.net/nephatrine/quake2-server:latest nephatrine/quake2-server:latest
|
||||
- docker tag pdr.nephatrine.net/nephatrine/quake2-server:nginx nephatrine/quake2-server:nginx
|
||||
- docker login -p "$DOCKER_PASS" -u "$DOCKER_USER"
|
||||
- docker push -a nephatrine/quake2-server
|
||||
- docker logout
|
||||
depends_on:
|
||||
- build
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: notify
|
||||
|
||||
steps:
|
||||
- name: notify-status
|
||||
image: appleboy/drone-discord
|
||||
failure: ignore
|
||||
settings:
|
||||
avatar_url: https://nephatrine.net/images/buttons/drone-ci.png
|
||||
message: "Build of **[{{repo.name}}:{{commit.branch}}](<https://code.nephatrine.net/nephatrine/{{repo.name}}/src/branch/{{commit.branch}}>)** returned [{{build.status}}](<{{build.link}}>)."
|
||||
username: DroneCI
|
||||
webhook_id:
|
||||
from_secret: wh-quake2-id
|
||||
webhook_token:
|
||||
from_secret: wh-quake2-tok
|
||||
|
||||
depends_on:
|
||||
- default
|
||||
|
||||
trigger:
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
|
||||
---
|
||||
kind: signature
|
||||
hmac: 6984c1ffa490127c5ec83b66703ba8e39df756c2aeba4765457efa3a943906df
|
||||
|
||||
...
|
|
@ -0,0 +1,226 @@
|
|||
name: Build Container Image
|
||||
run-name: ${{ gitea.actor }} pushed to ${{ gitea.repository }}:${{ gitea.ref_name }}
|
||||
on: [push, workflow_call]
|
||||
jobs:
|
||||
build_amd64:
|
||||
if: gitea.repository_owner == 'NephNET' && !contains(github.event.head_commit.message, '#noci')
|
||||
runs-on: nephnet-amd64
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Docker Build
|
||||
run: |
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-cached --target builder ${{ gitea.workspace }}
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-amd64 --target dedicated ${{ gitea.workspace }}
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx-amd64 ${{ gitea.workspace }}
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
registry: code.nephatrine.net
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.PACKAGER_TOKEN }}
|
||||
- name: Docker Push
|
||||
run: docker push code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-amd64
|
||||
- name: Notify Discord
|
||||
uses: actions/discord-status@v1
|
||||
if: always()
|
||||
with:
|
||||
title: "Container Build (X86_64)"
|
||||
webhook: ${{ secrets.DISCORD_WEBHOOK_BUILD }}
|
||||
build_arm64:
|
||||
if: gitea.repository_owner == 'NephNET' && !contains(github.event.head_commit.message, '#noci')
|
||||
runs-on: nephnet-arm64
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Docker Build
|
||||
run: |
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-cached --target builder ${{ gitea.workspace }}
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-arm64v8 --target dedicated ${{ gitea.workspace }}
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx-arm64v8 ${{ gitea.workspace }}
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
registry: code.nephatrine.net
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.PACKAGER_TOKEN }}
|
||||
- name: Docker Push
|
||||
run: docker push code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-arm64v8
|
||||
- name: Notify Discord
|
||||
uses: actions/discord-status@v1
|
||||
if: always()
|
||||
with:
|
||||
title: "Container Build (AARCH64)"
|
||||
webhook: ${{ secrets.DISCORD_WEBHOOK_BUILD }}
|
||||
build_armhf:
|
||||
if: gitea.repository_owner == 'NephNET' && !contains(github.event.head_commit.message, '#noci')
|
||||
runs-on: nephnet-armhf
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Docker Build
|
||||
run: |
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-cached --target builder ${{ gitea.workspace }}
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-armv7 --target dedicated ${{ gitea.workspace }}
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx-armv7 ${{ gitea.workspace }}
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
registry: code.nephatrine.net
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.PACKAGER_TOKEN }}
|
||||
- name: Docker Push
|
||||
run: docker push code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-armv7
|
||||
- name: Notify Discord
|
||||
uses: actions/discord-status@v1
|
||||
if: always()
|
||||
with:
|
||||
title: "Container Build (ARMV7L)"
|
||||
webhook: ${{ secrets.DISCORD_WEBHOOK_BUILD }}
|
||||
build_riscv64:
|
||||
if: gitea.repository_owner == 'NephNET' && !contains(github.event.head_commit.message, '#noci')
|
||||
runs-on: nephnet-riscv64
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Docker Build
|
||||
run: |
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-cached --target builder ${{ gitea.workspace }}
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-riscv64 --target dedicated ${{ gitea.workspace }}
|
||||
docker build --pull -t code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx-riscv64 ${{ gitea.workspace }}
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
registry: code.nephatrine.net
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.PACKAGER_TOKEN }}
|
||||
- name: Docker Push
|
||||
run: docker push code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-riscv64
|
||||
- name: Notify Discord
|
||||
uses: actions/discord-status@v1
|
||||
if: always()
|
||||
with:
|
||||
title: "Container Build (RISCV64)"
|
||||
webhook: ${{ secrets.DISCORD_WEBHOOK_BUILD }}
|
||||
build_manifest:
|
||||
needs: [build_amd64, build_arm64, build_armhf, build_riscv64]
|
||||
runs-on: nephnet
|
||||
steps:
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
registry: code.nephatrine.net
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.PACKAGER_TOKEN }}
|
||||
- name: Docker Manifest
|
||||
run: |
|
||||
docker manifest create code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }} --amend code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-amd64 --amend code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-arm64v8 --amend code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-armv7 --amend code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-riscv64
|
||||
docker manifest create code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx --amend code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx-amd64 --amend code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx-arm64v8 --amend code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx-armv7 --amend code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx-riscv64
|
||||
docker manifest push --purge code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}
|
||||
docker manifest push --purge code.nephatrine.net/nephnet/quake2-yamagi:${{ gitea.ref_name }}-nginx
|
||||
publish_amd64:
|
||||
if: gitea.ref_name == 'master'
|
||||
needs: [build_amd64]
|
||||
runs-on: nephnet-amd64
|
||||
steps:
|
||||
- name: Check Base Image
|
||||
if: github.event_name != 'push'
|
||||
uses: actions/docker-base-image-check@v1.2.1
|
||||
id: checkbase
|
||||
with:
|
||||
base-image: nephatrine/nginx-ssl:latest-amd64
|
||||
image: nephatrine/quake2-server:yamagi-nginx-amd64
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
- name: Docker Push
|
||||
run: |
|
||||
docker tag code.nephatrine.net/nephnet/quake2-yamagi:master-amd64 nephatrine/quake2-server:yamagi-amd64
|
||||
docker tag code.nephatrine.net/nephnet/quake2-yamagi:master-nginx-amd64 nephatrine/quake2-server:yamagi-nginx-amd64
|
||||
docker push nephatrine/quake2-server:yamagi-amd64
|
||||
docker push nephatrine/quake2-server:yamagi-nginx-amd64
|
||||
- name: Notify Discord
|
||||
if: github.event_name == 'push' || steps.checkbase.outputs.needs-updating == 'true'
|
||||
uses: actions/discord-status@v1
|
||||
with:
|
||||
title: "DockerHub: quake2-yamagi"
|
||||
description: "The container image was pushed to [DockerHub](https://hub.docker.com/repository/docker/nephatrine/quake2-server/general).\nPull `nephatrine/quake2-server:yamagi-amd64` for the newest image."
|
||||
nodetail: true
|
||||
webhook: ${{ secrets.DISCORD_WEBHOOK_PACKAGE }}
|
||||
publish_arm64:
|
||||
if: gitea.ref_name == 'master'
|
||||
needs: [build_arm64]
|
||||
runs-on: nephnet-arm64
|
||||
steps:
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
- name: Docker Push
|
||||
run: |
|
||||
docker tag code.nephatrine.net/nephnet/quake2-yamagi:master-arm64v8 nephatrine/quake2-server:yamagi-arm64v8
|
||||
docker tag code.nephatrine.net/nephnet/quake2-yamagi:master-nginx-arm64v8 nephatrine/quake2-server:yamagi-nginx-arm64v8
|
||||
docker push nephatrine/quake2-server:yamagi-arm64v8
|
||||
docker push nephatrine/quake2-server:yamagi-nginx-arm64v8
|
||||
publish_armhf:
|
||||
if: gitea.ref_name == 'master'
|
||||
needs: [build_armhf]
|
||||
runs-on: nephnet-armhf
|
||||
steps:
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
- name: Docker Push
|
||||
run: |
|
||||
docker tag code.nephatrine.net/nephnet/quake2-yamagi:master-armv7 nephatrine/quake2-server:yamagi-armv7
|
||||
docker tag code.nephatrine.net/nephnet/quake2-yamagi:master-nginx-armv7 nephatrine/quake2-server:yamagi-nginx-armv7
|
||||
docker push nephatrine/quake2-server:yamagi-armv7
|
||||
docker push nephatrine/quake2-server:yamagi-nginx-armv7
|
||||
publish_riscv64:
|
||||
if: gitea.ref_name == 'master'
|
||||
needs: [build_riscv64]
|
||||
runs-on: nephnet-riscv64
|
||||
steps:
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
- name: Docker Push
|
||||
run: |
|
||||
docker tag code.nephatrine.net/nephnet/quake2-yamagi:master-riscv64 nephatrine/quake2-server:yamagi-riscv64
|
||||
docker tag code.nephatrine.net/nephnet/quake2-yamagi:master-nginx-riscv64 nephatrine/quake2-server:yamagi-nginx-riscv64
|
||||
docker push nephatrine/quake2-server:yamagi-riscv64
|
||||
docker push nephatrine/quake2-server:yamagi-nginx-riscv64
|
||||
publish_manifest:
|
||||
needs: [publish_amd64, publish_arm64, publish_armhf, publish_riscv64]
|
||||
runs-on: nephnet
|
||||
steps:
|
||||
- name: Docker Login
|
||||
uses: actions/docker-login@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
- name: Docker Manifest
|
||||
run: |
|
||||
docker manifest create nephatrine/quake2-server:yamagi --amend nephatrine/quake2-server:yamagi-amd64 --amend nephatrine/quake2-server:yamagi-arm64v8 --amend nephatrine/quake2-server:yamagi-armv7 --amend nephatrine/quake2-server:yamagi-riscv64
|
||||
docker manifest create nephatrine/quake2-server:yamagi-nginx --amend nephatrine/quake2-server:yamagi-nginx-amd64 --amend nephatrine/quake2-server:yamagi-nginx-arm64v8 --amend nephatrine/quake2-server:yamagi-nginx-armv7 --amend nephatrine/quake2-server:yamagi-nginx-riscv64
|
||||
docker manifest create nephatrine/quake2-server:latest --amend nephatrine/quake2-server:yamagi-amd64 --amend nephatrine/quake2-server:yamagi-arm64v8 --amend nephatrine/quake2-server:yamagi-armv7 --amend nephatrine/quake2-server:yamagi-riscv64
|
||||
docker manifest create nephatrine/quake2-server:latest-nginx --amend nephatrine/quake2-server:yamagi-nginx-amd64 --amend nephatrine/quake2-server:yamagi-nginx-arm64v8 --amend nephatrine/quake2-server:yamagi-nginx-armv7 --amend nephatrine/quake2-server:yamagi-nginx-riscv64
|
||||
docker manifest push --purge nephatrine/quake2-server:yamagi
|
||||
docker manifest push --purge nephatrine/quake2-server:yamagi-nginx
|
||||
docker manifest push --purge nephatrine/quake2-server:latest
|
||||
docker manifest push --purge nephatrine/quake2-server:latest-nginx
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Docker Describe
|
||||
uses: actions/dockerhub-update-description@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
repository: nephatrine/quake2
|
|
@ -0,0 +1,14 @@
|
|||
name: Build Container Image
|
||||
run-name: ${{ gitea.actor }} pushed to ${{ gitea.repository }}:${{ gitea.ref_name }}
|
||||
on:
|
||||
pull_request:
|
||||
types: [ opened, synchronize, ready_for_review ]
|
||||
jobs:
|
||||
build:
|
||||
if: gitea.actor == 'nephatrine' && gitea.event.pull_request.draft == false
|
||||
runs-on: nephnet
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Docker Build
|
||||
run: docker build --pull ${{ gitea.workspace }}
|
93
Dockerfile
93
Dockerfile
|
@ -4,74 +4,99 @@ RUN echo "====== INSTALL LIBRARIES ======" \
|
|||
&& apk add --no-cache mesa-dev sdl2-dev
|
||||
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/yquake2.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/ctf.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/xatrix.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/rogue.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/zaero.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/slightmechanicaldestruction.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/DirtBagXon/3zb2-zigflag.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/packetflinger/lmctf.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/packetflinger/openffa.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/packetflinger/opentdm.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/ctf.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/rogue.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/xatrix.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/zaero.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/yquake2/pakextract.git
|
||||
RUN git -C /root clone --single-branch --depth=1 https://github.com/nephatrine/q25_game.git
|
||||
|
||||
RUN echo "====== COMPILE QUAKE II ======" \
|
||||
&& cd /root/yquake2 \
|
||||
&& make server game \
|
||||
&& make -j3 server game \
|
||||
&& cd /root/ctf \
|
||||
&& make
|
||||
&& make -j3
|
||||
RUN echo "====== COMPILE EXPANSIONS ======" \
|
||||
&& cd /root/xatrix \
|
||||
&& make \
|
||||
&& make -j3 \
|
||||
&& cd /root/rogue \
|
||||
&& make \
|
||||
&& make -j3 \
|
||||
&& cd /root/zaero \
|
||||
&& make
|
||||
RUN echo "====== COMPILE MODS ======" \
|
||||
&& cd /root/slightmechanicaldestruction \
|
||||
&& make \
|
||||
&& cd /root/3zb2-zigflag \
|
||||
&& make \
|
||||
&& mv 3zb2/pak10.pak 3zb2/pak6.pak \
|
||||
&& cd /root/q25_game \
|
||||
&& mkdir release && mkdir build && cd build \
|
||||
&& cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DNO_EXTRACTFUNCS=ON -DNEPHATRINE_TWEAKS=ON .. \
|
||||
&& ninja && cp gamex86_64.so ../release/game.so
|
||||
&& make -j3
|
||||
RUN echo "====== COMPILE TOOLS ======" \
|
||||
&& cd /root/pakextract \
|
||||
&& make
|
||||
&& make -j3
|
||||
RUN echo "====== COMPILE 3ZB2 ======" \
|
||||
&& cd /root/3zb2-zigflag \
|
||||
&& if [ ! "$(uname)" = "x86_64" ]; then sed -i "s~-msse2 -mfpmath=sse~~g" Makefile; fi \
|
||||
&& make -j3 \
|
||||
&& mv 3zb2/pak10.pak 3zb2/pak6.pak
|
||||
RUN echo "====== COMPILE LMCTF ======" \
|
||||
&& cd /root/lmctf \
|
||||
&& make -j3
|
||||
RUN echo "====== COMPILE OPENFFA ======" \
|
||||
&& cd /root/openffa \
|
||||
&& make -j3 && mv game*.so game.so
|
||||
RUN echo "====== COMPILE OPENTDM ======" \
|
||||
&& cd /root/opentdm \
|
||||
&& sed -i "s~shell pkg-config libcurl --cflags~shell curl-config --cflags~g" Makefile \
|
||||
&& sed -i "s~shell pkg-config libcurl --libs~shell curl-config --libs~g" Makefile \
|
||||
&& sed -i "s~-DCURL_STATICLIB~~g" Makefile \
|
||||
&& sed -i 's~deps/[^ ]*~$(CURL_LIBS)~g' Makefile \
|
||||
&& make -j3 && mv game*.so game.so
|
||||
|
||||
FROM nephatrine/alpine-s6:latest
|
||||
FROM nephatrine/alpine-s6:latest AS dedicated
|
||||
LABEL maintainer="Daniel Wolf <nephatrine@gmail.com>"
|
||||
|
||||
RUN echo "====== INSTALL PACKAGES ======" \
|
||||
&& apk add --no-cache libcurl screen sdl2 \
|
||||
&& mkdir -p /mnt/shared
|
||||
|
||||
COPY --from=builder /root/pakextract/pakextract /usr/local/bin/
|
||||
COPY --from=builder /root/yquake2/release/ /opt/quake2/
|
||||
COPY --from=builder /root/ctf/release/ /opt/quake2/ctf/
|
||||
COPY --from=builder /root/xatrix/release/ /opt/quake2/xatrix/
|
||||
COPY --from=builder /root/rogue/release/ /opt/quake2/rogue/
|
||||
COPY --from=builder /root/zaero/release/ /opt/quake2/zaero/
|
||||
COPY --from=builder /root/slightmechanicaldestruction/release/ /opt/quake2/smd/
|
||||
COPY --from=builder /root/3zb2-zigflag/release/ /opt/quake2/3zb2/
|
||||
COPY --from=builder /root/q25_game/release/ /opt/quake2/q25/
|
||||
COPY --from=builder /root/yquake2/stuff/yq2.cfg /opt/quake2-data/baseq2/
|
||||
COPY --from=builder /root/yquake2/stuff/mapfixes/baseq2/ /opt/quake2-data/baseq2/maps/
|
||||
COPY --from=builder /root/yquake2/stuff/mapfixes/juggernaut/ /opt/quake2-data/jugfull/maps/
|
||||
COPY --from=builder /root/ctf/release/ /opt/quake2/ctf/
|
||||
COPY --from=builder /root/xatrix/release/ /opt/quake2/xatrix/
|
||||
COPY --from=builder /root/xatrix/stuff/mapfixes/ /opt/quake2-data/xatrix/maps/
|
||||
COPY --from=builder /root/rogue/release/ /opt/quake2/rogue/
|
||||
COPY --from=builder /root/rogue/stuff/mapfixes/ /opt/quake2-data/rogue/maps/
|
||||
COPY --from=builder /root/zaero/release/ /opt/quake2/zaero/
|
||||
COPY --from=builder /root/zaero/stuff/mapfixes/ /opt/quake2-data/zaero/maps/
|
||||
COPY --from=builder /root/3zb2-zigflag/release/ /opt/quake2/3zb2/
|
||||
COPY --from=builder /root/3zb2-zigflag/3zb2/ /opt/quake2-data/3zb2/
|
||||
COPY --from=builder /root/pakextract/pakextract /usr/local/bin/
|
||||
COPY --from=builder /root/openffa/game.so /opt/quake2/openffa/
|
||||
COPY --from=builder /root/opentdm/game.so /opt/quake2/opentdm/
|
||||
COPY --from=builder /root/3zb2-zigflag/release/ /opt/quake2/3zb2/
|
||||
COPY override /
|
||||
|
||||
RUN echo "====== PREP FOR Q2ADMIN ======" \
|
||||
&& cp /opt/quake2/baseq2/game.so /opt/quake2/baseq2/game.real.so \
|
||||
&& cp /opt/quake2/3zb2/game.so /opt/quake2/3zb2/game.real.so \
|
||||
&& cp /opt/quake2/ctf/game.so /opt/quake2/ctf/game.real.so \
|
||||
&& cp /opt/quake2/xatrix/game.so /opt/quake2/xatrix/game.real.so \
|
||||
&& cp /opt/quake2/rogue/game.so /opt/quake2/rogue/game.real.so \
|
||||
&& cp /opt/quake2/zaero/game.so /opt/quake2/zaero/game.real.so \
|
||||
&& cp /opt/quake2/smd/game.so /opt/quake2/smd/game.real.so \
|
||||
&& cp /opt/quake2/q25/game.so /opt/quake2/q25/game.real.so
|
||||
&& cp /opt/quake2/3zb2/game.so /opt/quake2/3zb2/game.real.so \
|
||||
&& cp /opt/quake2/openffa/game.so /opt/quake2/openffa/game.real.so \
|
||||
&& cp /opt/quake2/opentdm/game.so /opt/quake2/opentdm/game.real.so
|
||||
|
||||
EXPOSE 27910/udp
|
||||
|
||||
FROM nephatrine/nginx-ssl:latest
|
||||
LABEL maintainer="Daniel Wolf <nephatrine@gmail.com>"
|
||||
|
||||
RUN echo "====== INSTALL PACKAGES ======" \
|
||||
&& apk add --no-cache libcurl screen sdl2
|
||||
|
||||
ENV QUAKE2_MIRROR=true
|
||||
|
||||
COPY --from=builder /root/pakextract/pakextract /usr/local/bin/
|
||||
COPY --from=dedicated /opt/quake2 /opt/quake2
|
||||
COPY --from=dedicated /opt/quake2-data /opt/quake2-data
|
||||
COPY override /
|
||||
|
||||
EXPOSE 80/tcp 443/tcp 27910/udp
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
FROM pdr.nephatrine.net/nephatrine/quake2-server:latest
|
||||
|
||||
FROM pdr.nephatrine.net/nephatrine/nginx-ssl:latest
|
||||
LABEL maintainer="Daniel Wolf <nephatrine@gmail.com>"
|
||||
|
||||
RUN echo "====== INSTALL PACKAGES ======" \
|
||||
&& apk add --no-cache libcurl screen sdl2
|
||||
|
||||
ENV QUAKE2_MIRROR=true
|
||||
|
||||
COPY --from=0 /opt/quake2 /opt/quake2
|
||||
COPY --from=0 /opt/quake2-data /opt/quake2-data
|
||||
COPY --from=0 /usr/local/bin/pakextract /usr/local/bin/pakextract
|
||||
COPY override /
|
||||
|
||||
EXPOSE 80/tcp 443/tcp 27910/udp
|
|
@ -1,4 +1,4 @@
|
|||
Copyright © 2021 Daniel Wolf <<nephatrine@gmail.com>>
|
||||
Copyright © 2023 Daniel Wolf <<nephatrine@gmail.com>>
|
||||
|
||||
**Permission to use, copy, modify, and distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
|
|
23
README.md
23
README.md
|
@ -1,23 +1,18 @@
|
|||
[Git](https://code.nephatrine.net/nephatrine/docker-quake2/src/branch/master) |
|
||||
[Git](https://code.nephatrine.net/NephNET/docker-quake2-yamagi/src/branch/master) |
|
||||
[Docker](https://hub.docker.com/r/nephatrine/quake2-server/) |
|
||||
[unRAID](https://code.nephatrine.net/nephatrine/unraid-containers)
|
||||
|
||||
[![Build Status](https://ci.nephatrine.net/api/badges/nephatrine/docker-quake2/status.svg?ref=refs/heads/master)](https://ci.nephatrine.net/nephatrine/docker-quake2)
|
||||
|
||||
# Quake II Server
|
||||
|
||||
This docker image contains a Quake II dedicated server.
|
||||
|
||||
If using the ``nginx`` tag, you can configure TLS the same way as the
|
||||
[nginx-ssl](https://code.nephatrine.net/nephatrine/docker-nginx-ssl) container.
|
||||
If part of a larger envinronment, we suggest using a separate container as a
|
||||
reverse proxy server and handle TLS there rather than here.
|
||||
|
||||
- [Alpine Linux](https://alpinelinux.org/)
|
||||
- [Skarnet Software](https://skarnet.org/software/)
|
||||
- [S6 Overlay](https://github.com/just-containers/s6-overlay)
|
||||
- [Alpine Linux](https://alpinelinux.org/) w/ [S6 Overlay](https://github.com/just-containers/s6-overlay)
|
||||
- [NGINX](https://www.nginx.com/) w/ [CertBot](https://certbot.eff.org/) (with ``nginx`` tags)
|
||||
- [Yamagi Quake II](https://yamagi.org/quake2/)
|
||||
|
||||
The ``nginx`` tags will provide an HTTP(S) mirror of the game files for clients
|
||||
that support HTTP downloads.
|
||||
|
||||
You can spin up a quick temporary test container like this:
|
||||
|
||||
~~~
|
||||
|
@ -27,7 +22,6 @@ docker run --rm -p 27910:27910 -it nephatrine/quake2-server:latest /bin/bash
|
|||
## Docker Tags
|
||||
|
||||
- **nephatrine/quake2-server:latest**: Yamagi Quake II / Alpine Latest
|
||||
- **nephatrine/quake2-server:nginx**: Yamagi Quake II / NGINX Mainline / Alpine Latest
|
||||
|
||||
## Configuration Variables
|
||||
|
||||
|
@ -41,8 +35,9 @@ configuration files.
|
|||
- ``PGID``: Mount Owner GID (*100*)
|
||||
- ``TZ``: System Timezone (*America/New_York*)
|
||||
|
||||
If using the ``nginx`` tag, you can use the additional configuration options documented
|
||||
for the [nginx-ssl](https://code.nephatrine.net/nephatrine/docker-nginx-ssl) container.
|
||||
If using the ``nginx`` tags, you can use the additional configuration options
|
||||
documented for the [nginx-ssl](https://code.nephatrine.net/nephatrine/docker-nginx-ssl)
|
||||
container.
|
||||
|
||||
## Persistent Mounts
|
||||
|
||||
|
|
Loading…
Reference in New Issue