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

This commit is contained in:
Daniel Wolf 2023-05-04 13:51:17 -04:00
parent 051fe29d43
commit 0a2dc00932
Signed by: nephatrine
GPG Key ID: 59D70EC2E4AAB4D0
8 changed files with 310 additions and 134 deletions

View File

@ -1,5 +1,6 @@
.drone.yml
.git
.gitea
.gitignore
LICENSE.md
README.md

View File

@ -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
...

226
.gitea/workflows/build.yaml Normal file
View File

@ -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

View File

@ -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 }}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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