mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2025-12-16 06:20:34 +00:00
Extract PublicListing and MatchActively to a plugin, resurrect MatchActively (#2759)
* Start work on extracting remote communication * ok * Dockerfile fixes * More fixes * Prepare /Api/Announce and /Api/HeartBeat * Decrease publish race conditions * OK * Misc * Misc * Misc * Move Steam group part back to ASF core * Finally implement match actively v2 core * Update RemoteCommunication.cs * Use single round exclusively, report inventories more often * Use randomization when asking others for assetIDs * Add support for license and crowdin * Kill dead code * Fix return type of inventories * Fix responses for good * Unify old backend with new * Report whole inventory, always Helps with optimization on the backend side in terms of inventory fetching * Update RemoteCommunication.cs * Determine index of each asset and tell server about it * Update AnnouncementRequest.cs * Fix ASF screwing up with the order * Fix warnings * Misc rename * Final logging touches
This commit is contained in:
committed by
GitHub
parent
fd517294d1
commit
98ef37e722
37
Dockerfile
37
Dockerfile
@@ -4,9 +4,10 @@ FROM --platform=$BUILDPLATFORM node:lts${IMAGESUFFIX} AS build-node
|
||||
WORKDIR /app/ASF-ui
|
||||
COPY ASF-ui .
|
||||
COPY .git/modules/ASF-ui /app/.git/modules/ASF-ui
|
||||
RUN echo "node: $(node --version)" && \
|
||||
echo "npm: $(npm --version)" && \
|
||||
npm ci --no-progress && \
|
||||
RUN set -eu; \
|
||||
echo "node: $(node --version)"; \
|
||||
echo "npm: $(npm --version)"; \
|
||||
npm ci --no-progress; \
|
||||
npm run deploy --no-progress
|
||||
|
||||
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0${IMAGESUFFIX} AS build-dotnet
|
||||
@@ -17,30 +18,43 @@ ARG TARGETOS
|
||||
ENV DOTNET_CLI_TELEMETRY_OPTOUT true
|
||||
ENV DOTNET_NOLOGO true
|
||||
ENV NET_CORE_VERSION net7.0
|
||||
ENV PLUGINS ArchiSteamFarm.OfficialPlugins.ItemsMatcher
|
||||
ENV STEAM_TOKEN_DUMPER_NAME ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
|
||||
WORKDIR /app
|
||||
COPY --from=build-node /app/ASF-ui/dist ASF-ui/dist
|
||||
COPY ArchiSteamFarm ArchiSteamFarm
|
||||
COPY ArchiSteamFarm.OfficialPlugins.ItemsMatcher ArchiSteamFarm.OfficialPlugins.ItemsMatcher
|
||||
COPY ArchiSteamFarm.OfficialPlugins.SteamTokenDumper ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
|
||||
COPY resources resources
|
||||
COPY .editorconfig .editorconfig
|
||||
COPY Directory.Build.props Directory.Build.props
|
||||
COPY Directory.Packages.props Directory.Packages.props
|
||||
COPY LICENSE.txt LICENSE.txt
|
||||
RUN dotnet --info && \
|
||||
RUN set -eu; \
|
||||
dotnet --info; \
|
||||
\
|
||||
case "$TARGETOS" in \
|
||||
"linux") ;; \
|
||||
*) echo "ERROR: Unsupported OS: ${TARGETOS}"; exit 1 ;; \
|
||||
esac && \
|
||||
esac; \
|
||||
\
|
||||
case "$TARGETARCH" in \
|
||||
"amd64") asf_variant="${TARGETOS}-x64" ;; \
|
||||
"arm") asf_variant="${TARGETOS}-${TARGETARCH}" ;; \
|
||||
"arm64") asf_variant="${TARGETOS}-${TARGETARCH}" ;; \
|
||||
*) echo "ERROR: Unsupported CPU architecture: ${TARGETARCH}"; exit 1 ;; \
|
||||
esac && \
|
||||
if [ -n "${STEAM_TOKEN_DUMPER_TOKEN-}" ] && [ -f "${STEAM_TOKEN_DUMPER_NAME}/SharedInfo.cs" ]; then sed -i "s/STEAM_TOKEN_DUMPER_TOKEN/${STEAM_TOKEN_DUMPER_TOKEN}/g" "${STEAM_TOKEN_DUMPER_NAME}/SharedInfo.cs"; dotnet publish "${STEAM_TOKEN_DUMPER_NAME}" -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}" -p:ASFVariant=docker -p:ContinuousIntegrationBuild=true -p:UseAppHost=false -r "$asf_variant" --nologo --no-self-contained; fi && \
|
||||
dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/result" -p:ASFVariant=docker -p:ContinuousIntegrationBuild=true -p:UseAppHost=false -r "$asf_variant" --nologo --no-self-contained && \
|
||||
if [ -d "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}" ]; then mkdir -p "out/result/plugins/${STEAM_TOKEN_DUMPER_NAME}"; cp -pR "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/"* "out/result/plugins/${STEAM_TOKEN_DUMPER_NAME}"; fi
|
||||
esac; \
|
||||
\
|
||||
dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/result" -p:ASFVariant=docker -p:ContinuousIntegrationBuild=true -p:UseAppHost=false -r "$asf_variant" --nologo --no-self-contained; \
|
||||
\
|
||||
if [ -n "${STEAM_TOKEN_DUMPER_TOKEN-}" ] && [ -f "${STEAM_TOKEN_DUMPER_NAME}/SharedInfo.cs" ]; then \
|
||||
sed -i "s/STEAM_TOKEN_DUMPER_TOKEN/${STEAM_TOKEN_DUMPER_TOKEN}/g" "${STEAM_TOKEN_DUMPER_NAME}/SharedInfo.cs"; \
|
||||
dotnet publish "${STEAM_TOKEN_DUMPER_NAME}" -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/result/plugins/${STEAM_TOKEN_DUMPER_NAME}" -p:ASFVariant=docker -p:ContinuousIntegrationBuild=true -p:UseAppHost=false -r "$asf_variant" --nologo --no-self-contained; \
|
||||
fi; \
|
||||
\
|
||||
for plugin in $PLUGINS; do \
|
||||
dotnet publish "$plugin" -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/result/plugins/$plugin" -p:ASFVariant=docker -p:ContinuousIntegrationBuild=true -p:UseAppHost=false -r "$asf_variant" --nologo --no-self-contained; \
|
||||
done
|
||||
|
||||
FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/aspnet:7.0${IMAGESUFFIX} AS runtime
|
||||
ENV ASF_USER asf
|
||||
@@ -62,8 +76,9 @@ EXPOSE 1242
|
||||
WORKDIR /app
|
||||
COPY --from=build-dotnet /app/out/result .
|
||||
|
||||
RUN groupadd -r -g 1000 asf && \
|
||||
useradd -r -d /app -g 1000 -u 1000 asf && \
|
||||
RUN set -eu; \
|
||||
groupadd -r -g 1000 asf; \
|
||||
useradd -r -d /app -g 1000 -u 1000 asf; \
|
||||
chown -hR asf:asf /app
|
||||
|
||||
VOLUME ["/app/config", "/app/logs"]
|
||||
|
||||
Reference in New Issue
Block a user