Brings up the pull-model scraper: the .NET C2 hands skin+wear jobs to Python nodriver workers that scrape cs.money and post results back, plus the supporting Core/EFCore data model, migrations, and docker-compose orchestration. IPRoyal proxying lets workers scale horizontally with a distinct residential exit IP each: every worker process mints its own sticky session at startup, and an in-process forwarding proxy injects the gateway auth so Chromium talks only to an auth-free localhost endpoint (zero CDP). On a Cloudflare challenge a worker rotates to a fresh session/IP and re-warms. Verified end-to-end against live IPRoyal: distinct US residential exits per worker and IP rotation on demand. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
25 lines
1.2 KiB
Docker
25 lines
1.2 KiB
Docker
# Build context is the REPO ROOT (so Central Package Management's Directory.*.props
|
|
# at the root are available). Build with:
|
|
# docker compose build (compose sets the context)
|
|
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
|
|
WORKDIR /src
|
|
|
|
# Restore against the full solution sources the C2 transitively needs.
|
|
COPY Directory.Build.props Directory.Packages.props ./
|
|
COPY BlueLaminate/ BlueLaminate/
|
|
RUN dotnet restore BlueLaminate/BlueLaminate.C2/BlueLaminate.C2.csproj
|
|
RUN dotnet publish BlueLaminate/BlueLaminate.C2/BlueLaminate.C2.csproj \
|
|
-c Release -o /app --no-restore
|
|
|
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
|
|
# NOTE: deliberately do NOT install libgssapi-krb5-2. Without it Npgsql logs a
|
|
# harmless "cannot load libgssapi_krb5.so.2" line and falls back to password auth;
|
|
# WITH it, a failed/misconfigured connection attempt segfaults during GSS negotiation
|
|
# (observed: container exit 139 / crash-loop). Graceful failure beats the segfault.
|
|
WORKDIR /app
|
|
COPY --from=build /app ./
|
|
# Bind all interfaces inside the container (overrides appsettings' localhost binding).
|
|
ENV ASPNETCORE_URLS=http://+:5080
|
|
EXPOSE 5080
|
|
ENTRYPOINT ["dotnet", "BlueLaminate.C2.dll"]
|