-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.ci
More file actions
44 lines (38 loc) · 1.81 KB
/
Copy pathDockerfile.ci
File metadata and controls
44 lines (38 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# syntax=docker/dockerfile:1.7
#
# Lumen CI 베이스 이미지.
#
# 모든 GitHub Actions 잡(`build-test`, `air-gapped`, `lint`, `docs`, `deny`,
# `audit`)이 이 컨테이너 안에서 실행되어 toolchain·시스템 의존성·사전 설치된
# cargo 도구를 동일하게 사용합니다. 이 파일·`rust-toolchain.toml`이 변경되면
# `.github/workflows/ci.yml` 의 `image` 잡이 자동으로 새 태그를 빌드/푸시합니다.
# 베이스: Debian Bookworm 위의 Rust stable 고정.
# `rust-toolchain.toml` 의 채널과 일치시켜 로컬-CI 동작을 동기화합니다.
FROM rust:1.93-bookworm
# 워크스페이스 빌드에 필요한 시스템 패키지.
# - cmake / build-essential / pkg-config / libssl-dev :
# 일부 native crate (wasmtime / cranelift / 향후 llama.cpp 등) 의
# 보편적 빌드 요구
# - git : cargo-deny advisory DB fetch 및 일부 build script 가 사용
#
# 참고: 과거에는 `protobuf-compiler` 도 설치했으나 candle / candle-onnx
# 제거(v0.4)로 더 이상 필요하지 않습니다.
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
build-essential \
cmake \
pkg-config \
libssl-dev \
git \
&& rm -rf /var/lib/apt/lists/*
# Rust toolchain : stable 위에 clippy/rustfmt 컴포넌트와 wasm 타겟 추가.
RUN rustup component add clippy rustfmt \
&& rustup target add wasm32-unknown-unknown
# 자주 쓰는 cargo 도구 사전 설치 — CI 시간을 분 단위로 단축합니다.
# `--locked` 로 reproducible install. 설치 후 빌드 캐시를 비워 이미지 크기를 줄입니다.
RUN cargo install --locked cargo-deny \
&& cargo install --locked cargo-audit \
&& rm -rf "$CARGO_HOME/registry" "$CARGO_HOME/git"
ENV CARGO_TERM_COLOR=always
WORKDIR /workspace