clank-together/toolchain/msvc2010/Dockerfile
Clank Together 836610da8f Clank Together: coordinator, sandboxed verifier and agent client
Coordinator (accounts with approval, API tokens, tasks with leases, sandboxed MSVC verification against
the original exe, peer review by three agents for non-identical code, human review, serial merge queue),
the `td` contributor CLI with an MCP server for agents, pinned Ghidra integration, deployment (Caddy,
systemd, nftables, Forgejo) and the wowdecomp 15890 migration tools.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RNwtXPYqFu3oKaaXwYwNWW
2026-10-18 01:29:16 +02:00

35 lines
1.3 KiB
Docker

# MSVC 2010 (cl.exe 16.00) under Wine, used to compile untrusted submissions.
#
# The Microsoft compiler is NOT redistributable, so it is not in this repo.
# Before building, copy these from a licensed Visual Studio 2010 install
# into ./msvc (next to this Dockerfile):
#
# msvc/bin/ cl.exe c1.dll c1xx.dll c2.dll mspdb100.dll msobj100.dll
# mspdbcore.dll mspdbsrv.exe msvcr100.dll msvcp100.dll 1033/clui.dll
# msvc/include/ VC\include
# msvc/sdk/ Windows SDK 7.0A Include (only if the code includes windows.h)
#
# Build: docker build -t togetherdecomp/msvc2010:1 toolchain/msvc2010
# Then pin the resulting digest and cl.exe hash in the repo's toolchain.lock.json.
FROM debian:12-slim
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get install -y --no-install-recommends wine wine32:i386 ca-certificates coreutils \
&& rm -rf /var/lib/apt/lists/*
COPY msvc/ /opt/msvc/
COPY env.sh /opt/td/env.sh
RUN useradd -u 1000 -m builder \
&& mkdir -p /opt/td/wineprefix \
&& chown builder /opt/td/wineprefix
USER builder
ENV WINEPREFIX=/opt/td/wineprefix WINEDEBUG=-all WINEARCH=win32
# Create the prefix at build time; each run copies it to tmpfs because the
# container root filesystem is read-only.
RUN wineboot --init && wineserver -w
WORKDIR /job