mirror of
https://github.com/ACEmulator/ACE
synced 2026-08-17 12:26:06 -04:00
* .net10 build * update appveyor version * update appveyor vs version * Update appveyor.yml * Update ACE.Server.csproj * Update PacketHeaderOptional.cs * Update .vsconfig * Update ACE.Adapter.csproj * Update ACE.Common.csproj * Update ACE.Database.Tests.csproj * Update ACE.Database.csproj * Update ACE.DatLoader.Tests.csproj * Update ACE.DatLoader.csproj * Update ACE.Entity.csproj * Update ACE.Server.Tests.csproj * Update ACE.Server.csproj * Update ACE.Database.csproj * Update Dockerfile * Update ACE.Common.csproj * Update ACE.Database.Tests.csproj * Update ACE.Database.csproj * Update ACE.DatLoader.Tests.csproj * Update ACE.DatLoader.csproj * Update ACE.Server.Tests.csproj * Update SphereTests.cs * Update AppVeyor config Suppress NETSDK1233 warnings for now * Update AppVeyorBuild.bat * Update ACE.sln * Update appveyor.yml * Update appveyor.yml * Update appveyor.yml * Update README.md --------- Co-authored-by: Ty Conner <tyconner@itcproductions.com>
50 lines
1.5 KiB
Docker
50 lines
1.5 KiB
Docker
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build
|
|
ARG TARGETARCH
|
|
WORKDIR /Source
|
|
|
|
# copy csproj and restore as distinct layers
|
|
COPY ./Source/*.sln ./
|
|
COPY ./Source/ACE.Adapter/*.csproj ./ACE.Adapter/
|
|
COPY ./Source/ACE.Common/*.csproj ./ACE.Common/
|
|
COPY ./Source/ACE.Database/*.csproj ./ACE.Database/
|
|
COPY ./Source/ACE.Database.Tests/*.csproj ./ACE.Database.Tests/
|
|
COPY ./Source/ACE.DatLoader/*.csproj ./ACE.DatLoader/
|
|
COPY ./Source/ACE.DatLoader.Tests/*.csproj ./ACE.DatLoader.Tests/
|
|
COPY ./Source/ACE.Entity/*.csproj ./ACE.Entity/
|
|
COPY ./Source/ACE.Server/*.csproj ./ACE.Server/
|
|
COPY ./Source/ACE.Server.Tests/*.csproj ./ACE.Server.Tests/
|
|
|
|
RUN dotnet restore -a $TARGETARCH
|
|
|
|
# copy and publish app and libraries
|
|
COPY . ../.
|
|
RUN dotnet publish ./ACE.Server/ACE.Server.csproj -a $TARGETARCH -c release -o /ace --no-restore
|
|
|
|
# final stage/image
|
|
FROM mcr.microsoft.com/dotnet/runtime:10.0-noble
|
|
ARG DEBIAN_FRONTEND="noninteractive"
|
|
WORKDIR /ace
|
|
|
|
# install net-tools (netstat for health check) & cleanup
|
|
RUN apt-get update && \
|
|
apt-get install --no-install-recommends -y \
|
|
net-tools && \
|
|
apt-get clean && \
|
|
rm -rf \
|
|
/tmp/* \
|
|
/var/lib/apt/lists/* \
|
|
/var/tmp/*
|
|
|
|
# add app from build
|
|
COPY --from=build /ace .
|
|
|
|
# run app
|
|
ENTRYPOINT ["dotnet", "ACE.Server.dll"]
|
|
|
|
# ports and volumes
|
|
EXPOSE 9000-9001/udp
|
|
VOLUME /ace/Config /ace/Content /ace/Dats /ace/Logs /ace/Mods
|
|
|
|
# health check
|
|
HEALTHCHECK --start-period=5m --interval=1m --timeout=3s \
|
|
CMD netstat -an | grep 9000 > /dev/null; if [ 0 != $? ]; then exit 1; fi;
|