Agent Skills: Rust Docker Skill

Master Docker containerization for Rust applications

dockerrustcontainerizationcontainer-developmentdockerfile
containerizationID: pluginagentmarketplace/custom-plugin-rust/rust-docker

Skill Files

Browse the full folder contents for rust-docker.

Download Skill

Loading file tree…

skills/rust-docker/SKILL.md

Skill Metadata

Name
rust-docker
Description
Master Docker containerization for Rust applications

Rust Docker Skill

Master Docker containerization: multi-stage builds, minimal images, and production deployment.

Quick Start

Multi-Stage Dockerfile

# Build stage
FROM rust:1.75-alpine AS builder
RUN apk add --no-cache musl-dev
WORKDIR /app

# Cache dependencies
COPY Cargo.toml Cargo.lock ./
RUN mkdir src && echo "fn main() {}" > src/main.rs
RUN cargo build --release && rm -rf src

# Build app
COPY src ./src
RUN touch src/main.rs && cargo build --release

# Runtime (< 20MB)
FROM alpine:3.19
RUN apk add --no-cache ca-certificates
COPY --from=builder /app/target/release/my-app /usr/local/bin/

RUN adduser -D appuser
USER appuser

HEALTHCHECK CMD wget -qO- localhost:8080/health || exit 1
CMD ["my-app"]

Scratch Image (< 10MB)

FROM rust:1.75 AS builder
RUN rustup target add x86_64-unknown-linux-musl
RUN apt-get update && apt-get install -y musl-tools
WORKDIR /app
COPY . .
RUN cargo build --release --target x86_64-unknown-linux-musl

FROM scratch
COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/my-app /
ENTRYPOINT ["/my-app"]

Docker Compose

version: '3.8'
services:
  app:
    build: .
    ports:
      - "8080:8080"
    environment:
      - RUST_LOG=info

Commands

docker build -t my-app .
docker run --rm -p 8080:8080 my-app
docker images my-app  # Check size

Troubleshooting

| Problem | Solution | |---------|----------| | Slow builds | Cache Cargo.toml | | Large images | Use multi-stage + alpine | | SSL errors | Add ca-certificates |

Resources