Compare commits

...

18 Commits

Author SHA1 Message Date
shim_
ac9d3d9b09 TODO: ... [CI SKIP] 2018-09-16 22:57:32 +02:00
shim_
510ab998fe build on debian [CI SKIP] 2018-09-16 22:00:32 +02:00
shim_
1a40bb596e client build 2018-09-16 20:56:51 +02:00
shim_
976be2b62c added systemd service file 2018-09-16 20:07:31 +02:00
shim_
8e72c29759 merged changes 2018-09-16 19:44:17 +02:00
shim_
9ee6225992 create default config 2018-09-16 19:41:25 +02:00
shim_
b67f6bd42b set CWD 2018-09-16 19:35:29 +02:00
Marvin Drescher
9533b2a37b use current version 2018-09-13 16:35:11 +00:00
b48ca970f3 permanent docker cache 2018-09-13 14:07:46 +02:00
e08fac47fd shared cache 2018-09-12 18:56:47 +02:00
2109635929 push public image 2018-09-12 18:13:00 +02:00
59984ec3bb expose udp ports 2018-09-12 18:09:01 +02:00
shim_
d651ed3ea0 expose udp ports 2018-09-12 12:06:29 +02:00
91eb5cabef only publish on tag 2018-09-10 18:22:20 +02:00
629c53e055 push public version 2018-09-10 18:20:07 +02:00
root
17293cd72d drone 2018-09-09 00:07:08 +02:00
7217ca2320 expose ports 2018-09-08 23:51:49 +02:00
c889386744 alpine build 2018-09-08 23:50:56 +02:00
6 changed files with 113 additions and 6 deletions

42
.drone.yml Normal file
View File

@ -0,0 +1,42 @@
pipeline:
dl-cache:
image: repo.shimun.net/drone-plugins/davfile
url: https://seaf.shimun.net/seafdav/Drone/cache/
secrets: ["docker_username", "docker_password"]
file: ${DRONE_REPO_NAME}.tar.gz
secrets: ["dav_username", "dav_password"]
ex-cache:
image: repo.shimun.net/plugins/tar
dest: /drone/
file: ${DRONE_REPO_NAME}.tar.gz
quiet: true
docker:
image: plugins/docker
repo: repo.shimun.net/shimun/sauerbraten
registry: repo.shimun.net
secrets: ["docker_username", "docker_password"]
storage_path: /drone/docker
use_cache: true
mk-cache:
image: repo.shimun.net/plugins/tar
dest: ${DRONE_REPO_NAME}.tar.gz
file: /drone/docker
quiet: true
up-cache:
image: repo.shimun.net/plugins/davfile
url: https://seaf.shimun.net/seafdav/Drone/cache/
upload: true
file: ${DRONE_REPO_NAME}.tar.gz
secrets: ["dav_username", "dav_password"]
group: fin
docker-p:
image: plugins/docker
repo: repo.shimun.net/sauerbraten
registry: repo.shimun.net
secrets: ["docker_username", "docker_password"]
use_cache: true
storage_path: /drone/docker
squash: true
when:
event: tag
group: fin

View File

@ -1,11 +1,28 @@
FROM debian:stretch
RUN apt-get update && apt-get install zlib1g-dev libgeoip-dev build-essential -y
FROM frolvlad/alpine-glibc
COPY src /usr/src/sauerbraten
WORKDIR /usr/src/sauerbraten
RUN apk add --no-cache zlib geoip libstdc++
RUN make -C src install_server
ENV BUILD_DEPS="zlib-dev geoip-dev alpine-sdk"
ENTRYPOINT /usr/src/sauerbraten/bin_unix/native_server
RUN apk add --no-cache $BUILD_DEPS && cd /usr/src/sauerbraten && \
make -C src install_server && \
cp /usr/src/sauerbraten/bin_unix/native_server /usr/bin/sauerbraten-server && \
apk del --no-cache $BUILD_DEPS && rm -rf /usr/src/sauerbraten
COPY entrypoint.sh /sbin/
COPY src/server-init.cfg /etc/default/sauer-server.cfg
RUN chmod +x /sbin/entrypoint.sh
EXPOSE 28785 28786 28785/udp 28786/udp
VOLUME /opt/sauerbraten
WORKDIR /opt/sauerbraten
ENTRYPOINT /sbin/entrypoint.sh
CMD ["-d1", "-c18", "-g2"]

11
Dockerfile.client Normal file
View File

@ -0,0 +1,11 @@
FROM debian
ADD https://sourceforge.net/code-snapshots/svn/s/sa/sauerbraten/code/sauerbraten-code-r5385-data.zip /opt/sauerbraten/data.zip
COPY src /usr/src/sauerbraten
WORKDIR /usr/src/sauerbraten
ENV BUILD_DEPS="libghc-zlib-dev libgeoip-dev build-essential libgles2-mesa-dev libsdl2-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-net-dev"
RUN apt update && apt install -y $BUILD_DEPS && make -C src install && cp /usr/src/sauerbraten/bin_unix/native_client /opt/sauerbraten/ && apt remove -y $BUILD_DEPS

4
build-client.sh Executable file
View File

@ -0,0 +1,4 @@
docker run -ti -v $(pwd):/root $(docker build -f Dockerfile.client . | tail -1 | cut -d' ' -f3) /bin/sh -c "cp -r /opt/sauerbraten /root/ && chown $UID -R /root/sauerbraten"
cd sauerbraten
unzip data.zip
mv sauerbraten-code-*-data data

7
entrypoint.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/sh
if [ ! -e "/opt/sauerbraten/server-init.cfg" ]; then
cp "/etc/default/sauer-server.cfg" "/opt/sauerbraten/server-init.cfg"
fi
/usr/bin/sauerbraten-server "$@"

26
sauerbraten.service Normal file
View File

@ -0,0 +1,26 @@
[Unit]
Description=Sauerbraten Server container based on https://github.com/andrius4669/zeromod-sauerbraten
[Service]
Slice=machine.slice
# Resource limits
Delegate=true
CPUShares=256
MemoryLimit=128M
Environment=ROOT_DIR=/srv/sauerbraten
Environment=SAUER_PORT=4700
Environment=SAUER_CMD="-d1 -c18 -g2"
ExecStartPre=/bin/mkdir -p ${ROOT_DIR}
ExecStart=/usr/bin/rkt --insecure-options=image run --dns 8.8.8.8 --inherit-env --volume volume-opt-sauerbraten,kind=host,source=${ROOT_DIR} \
--port 28785-udp:${SAUER_PORT}5 --port 28786-udp:${SAUER_PORT}6 --port 28785-tcp:${SAUER_PORT}5 --port 28786-tcp:${SAUER_PORT}6 \
docker://repo.shimun.net/sauerbraten -- ${SAUER_CMD} --- --memory=64M
ExecStopPost=/usr/bin/rkt gc
KillMode=mixed
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target