Files
ReTeamSpeak ea08823c97
CI/CD / Build Frontend (push) Failing after 11s
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
CI/CD / Test (ubuntu-latest) (push) Failing after 2s
Initial commit: ReTeamSpeak cross-platform TeamSpeak client
- tscore: Protocol implementation (packets, crypto, connection handshake)
- tsaudio: Audio engine (capture, playback, codec, VAD, jitter buffer)
- tsdb: SQLite database (identities, bookmarks, messages, settings)
- shared: Core types and events
- tauri-app: Tauri v2 desktop application with React frontend
- docs: SRS, SAD, SDD documentation
- CI/CD: GitHub Actions workflow
- 32 unit tests passing
2026-05-12 14:41:54 +09:00

59 lines
1.7 KiB
Docker

FROM debian:trixie
# Install system dependencies
RUN apt-get update && apt-get install -y \
curl \
pkg-config \
build-essential \
libdbus-1-dev \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libssl-dev \
libasound2-dev \
&& rm -rf /var/lib/apt/lists/*
# Install Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
# Install Node.js (for frontend)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy Cargo files first for caching
COPY Cargo.toml ./
COPY shared/Cargo.toml shared/
COPY tscore/Cargo.toml tscore/
COPY tsaudio/Cargo.toml tsaudio/
COPY tsdb/Cargo.toml tsdb/
COPY tauri-app/src-tauri/Cargo.toml tauri-app/src-tauri/
# Create dummy source files for dependency caching
RUN mkdir -p shared/src && echo "pub fn dummy() {}" > shared/src/lib.rs && \
mkdir -p tscore/src && echo "pub fn dummy() {}" > tscore/src/lib.rs && \
mkdir -p tsaudio/src && echo "pub fn dummy() {}" > tsaudio/src/lib.rs && \
mkdir -p tsdb/src && echo "pub fn dummy() {}" > tsdb/src/lib.rs && \
mkdir -p tauri-app/src-tauri/src && echo "pub fn dummy() {}" > tauri-app/src-tauri/src/lib.rs
# Build dependencies (cached layer)
RUN cargo build 2>/dev/null || true
# Copy actual source
COPY . .
# Build
RUN cargo build -p shared -p tscore -p tsaudio -p tsdb
# Build frontend
RUN cd tauri-app/frontend && npm install && npm run build
# Final build
RUN cargo build
CMD ["cargo", "test", "-p", "shared", "-p", "tscore", "-p", "tsaudio", "-p", "tsdb"]