httpmock 0.9.0

HTTP mocking library for Rust
Documentation
# First stage: build the application
FROM rust:1.88 AS builder

WORKDIR /httpmock

COPY Cargo.toml .
# COPY Cargo.lock .

COPY src/ ./src/
COPY certs/ ./certs/

RUN cargo install --all-features --path .

FROM debian:trixie-slim

WORKDIR /httpmock

# hadolint ignore=DL3008
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local/cargo/bin/httpmock /usr/local/bin/httpmock
# In 0.9, the binary moved from /usr/local/cargo/bin/httpmock (used in 0.8.3)
# to /usr/local/bin/httpmock. Keep the deprecated path working for existing
# configurations using the old absolute path. Remove in a future release.
RUN mkdir -p /usr/local/cargo/bin && ln -s /usr/local/bin/httpmock /usr/local/cargo/bin/httpmock

# Log level (refer to env_logger crate for more information)
ENV RUST_LOG=httpmock=info

# The TCP port on which the mock server will listen to.
ENV HTTPMOCK_PORT=5050

# Container internal directory path that contains file bases mock specs (YAML-fies).
# ENV HTTPMOCK_MOCK_FILES_DIR=/mocks

# The existence of this environment variable (even if value is empty) is considered "true"/"disabled".
# ENV HTTPMOCK_DISABLE_ACCESS_LOG=true

# Request history limit.
ENV HTTPMOCK_REQUEST_HISTORY_LIMIT=100

ENTRYPOINT ["httpmock", "--expose"]

EXPOSE ${HTTPMOCK_PORT}