FROM mcr.microsoft.com/dotnet/runtime:8.0

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

LABEL \
	org.opencontainers.image.title="OpenSimulator (unofficial)" \
	org.opencontainers.image.authors="code@soupbowl.io" \
	org.opencontainers.image.source="https://github.com/soup-bowl/opensimulator-docker" \
	org.opencontainers.image.licenses="MIT"

ARG OPENSIM_VERSION=0.9.3.0
ARG OPENSIM_SHA1="a4bcd861626195af80cc1f962d3a2f4528859ad2"

# hadolint ignore=DL3008
RUN apt-get update \
	&& apt-get install --no-install-recommends -y apt-utils curl libc6-dev libgdiplus libsqlite3-dev screen uuid-runtime \
	&& apt-get clean \
	&& rm -rf /var/lib/apt/lists/* \
	&& mkdir /opt/opensim-tmp \
	&& curl -o /opt/opensim-tmp/opensim.tar.gz "http://opensimulator.org/dist/opensim-${OPENSIM_VERSION}.tar.gz" \
	&& echo "${OPENSIM_SHA1}  /opt/opensim-tmp/opensim.tar.gz" | sha1sum -c - \
	&& tar xzf /opt/opensim-tmp/opensim.tar.gz -C /opt/opensim-tmp \
	&& rm /opt/opensim-tmp/opensim*/bin/OpenSim.ini \
	&& rm /opt/opensim-tmp/opensim*/bin/config-include/StandaloneCommon.ini \
	&& rm /opt/opensim-tmp/opensim*/bin/config-include/storage/SQLiteStandalone.ini \
	&& mkdir /opt/opensim \
	&& mv /opt/opensim-tmp/opensim*/* /opt/opensim

COPY defaults  /opt/opensim/bin/defaults

EXPOSE 9000

WORKDIR /opt/opensim/bin

COPY docker-entrypoint.sh /usr/local/bin/

ENTRYPOINT ["docker-entrypoint.sh"]
CMD [ "screen", "-S", "OpenSim", "-D", "-m", "dotnet",  "OpenSim.dll" ]
