Repository navigation
Expand file tree
/
Copy pathDockerfile
More file actions
104 lines (90 loc) 路 3.32 KB
/
Copy pathDockerfile
File metadata and controls
104 lines (90 loc) 路 3.32 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# https://hub.docker.com/_/rust
FROM rust:1.95.0-bookworm AS builder
RUN apt-get update \
&& apt-get install -y \
# Linker
clang \
# TLS certificates
ca-certificates
WORKDIR /tmp/mold
ARG MOLD_VERSION
RUN curl -L --retry 10 --silent --show-error https://github.com/rui314/mold/releases/download/v${MOLD_VERSION}/mold-${MOLD_VERSION}-$(uname -m)-linux.tar.gz | tar -C /usr/local --strip-components=1 -xzf -
RUN "$(realpath /usr/bin/ld)" != /usr/local/bin/mold && sudo ln -sf /usr/local/bin/mold "$(realpath /usr/bin/ld)"; true
WORKDIR /usr/src/bencher/.cargo
COPY .cargo/config.toml config.toml
WORKDIR /usr/src/bencher/lib
RUN cargo init --lib api_auth
RUN cargo init --lib api_checkout
RUN cargo init --lib api_organizations
RUN cargo init --lib api_projects
RUN cargo init --lib api_run
RUN cargo init --lib api_server
RUN cargo init --lib api_users
RUN cargo init --lib bencher_api_tests
RUN cargo init --lib bencher_boundary
RUN cargo init --lib bencher_config
RUN cargo init --lib bencher_endpoint
RUN cargo init --lib bencher_logger
RUN cargo init --lib bencher_plot
RUN cargo init --lib bencher_rank
RUN cargo init --lib bencher_rbac
RUN cargo init --lib bencher_schema
RUN cargo init --lib bencher_token
COPY lib/bencher_adapter bencher_adapter
COPY lib/bencher_client bencher_client
COPY lib/bencher_comment bencher_comment
COPY lib/bencher_context bencher_context
COPY lib/bencher_noise bencher_noise
COPY lib/bencher_json bencher_json
COPY lib/bencher_parser bencher_parser
COPY lib/bencher_valid bencher_valid
WORKDIR /usr/src/bencher/plus
RUN cargo init --lib api_mcp
RUN cargo init --lib api_oci
RUN cargo init --lib api_runners
RUN cargo init --lib api_specs
RUN cargo init --lib bencher_billing
RUN cargo init --lib bencher_bing_index
RUN cargo init --lib bencher_callback
RUN cargo init --lib bencher_github_client
RUN cargo init --lib bencher_google_client
RUN cargo init --lib bencher_google_index
RUN cargo init --lib bencher_license
RUN cargo init --lib bencher_oci
RUN cargo init --lib bencher_oci_storage
RUN cargo init --lib bencher_output_protocol
RUN cargo init --lib bencher_otel
RUN cargo init --lib bencher_otel_provider
RUN cargo init --lib bencher_rate_limiter
RUN cargo init --lib bencher_recaptcha
RUN cargo init --lib bencher_rootfs
RUN cargo init --lib bencher_runner
RUN cargo init --lib bencher_init
WORKDIR /usr/src/bencher/tasks
RUN cargo init --bin bin_version
RUN cargo init --bin gen_installer
RUN cargo init --bin gen_pkg
RUN cargo init --bin gen_notes
RUN cargo init --bin gen_types
RUN cargo init --bin test_api
RUN cargo init --bin test_console
RUN cargo init --bin test_runner
RUN cargo init --bin runner_ops
RUN cargo init --bin update_sandbox
WORKDIR /usr/src/bencher
COPY Cargo.toml Cargo.toml
COPY Cargo.lock Cargo.lock
RUN cargo init xtask
WORKDIR /usr/src/bencher/services
RUN cargo init api
RUN cargo init runner
# The bencher_client build.rs reads services/api/openapi.json
COPY services/api/openapi.json /usr/src/bencher/services/api/openapi.json
WORKDIR /usr/src/bencher/services/cli
COPY services/cli/src src
COPY services/cli/Cargo.toml Cargo.toml
RUN cargo build --release -p bencher_cli
# https://github.com/GoogleContainerTools/distroless/blob/main/cc/README.md
FROM gcr.io/distroless/cc-debian12
COPY --from=builder /usr/src/bencher/target/release/bencher /usr/bin/bencher
ENTRYPOINT ["/usr/bin/bencher"]