# Copyright (C) 2020 Jef Roosens # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . FROM alpine:latest AS base # Build arguments ARG RELEASE_TAG # Add unzip & curl RUN apk update && apk add --no-cache unzip curl WORKDIR /terraria # Download & unzip # TODO convert this to jq? RUN curl -s "https://api.github.com/repos/Pryaxis/TShock/releases/tags/${RELEASE_TAG}" | \ grep "browser_download_url" | \ grep -o "https[^\"]\+" | \ xargs curl -sLo tshock.zip && \ unzip tshock.zip && \ rm tshock.zip && \ # Is there a better way to do this? mv TShock* tshock FROM mono:latest WORKDIR /terraria COPY --from=base /terraria/tshock /terraria # Create worlds directory & symlink it RUN mkdir -p worlds logs config /root/.local/share/Terraria && \ ln -s /terraria/worlds /root/.local/share/Terraria/Worlds ENTRYPOINT \ mono /terraria/TerrariaServer.exe \ -configpath /terraria/config \ -logpath /terraria/logs \ -autocreate "$AUTOCREATE" \ -world /terraria/worlds/Main.wld