Skip to content

Commit eb869f2

Browse files
committed
Update kms compose file
1 parent 0dd6982 commit eb869f2

File tree

4 files changed

+42
-4
lines changed

4 files changed

+42
-4
lines changed

kms/dstack-app/compose-dev.yaml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,20 @@ services:
2727
build:
2828
context: .
2929
dockerfile_inline: |
30-
FROM rust:1.86.0@sha256:300ec56abce8cc9448ddea2172747d048ed902a3090e6b57babb2bf19f754081
30+
FROM golang:1.22-alpine@sha256:1699c10032ca2582ec89a24a1312d986a3f094aed3d5c1147b19880afe40e052 AS dstack-mr-builder
31+
WORKDIR /app
32+
RUN apk add --no-cache git
33+
RUN git clone https://github.com/kvinwang/dstack-mr.git
34+
WORKDIR /app/dstack-mr
35+
RUN git checkout 5cf6d917e076f3624eab1b6b662f222ece15600f
36+
RUN CGO_ENABLED=0 go build -ldflags="-extldflags -static" -o /usr/local/bin/dstack-mr
37+
38+
FROM rust:1.86.0@sha256:300ec56abce8cc9448ddea2172747d048ed902a3090e6b57babb2bf19f754081 AS kms-builder
3139
WORKDIR /app
3240
RUN apt-get update && apt-get install -y \
3341
git \
3442
build-essential \
43+
musl-tools \
3544
libssl-dev \
3645
protobuf-compiler \
3746
libprotobuf-dev \
@@ -43,11 +52,20 @@ services:
4352
cd dstack && \
4453
git checkout ${GIT_REV}
4554
WORKDIR /app/dstack
46-
RUN cargo build --release -p dstack-kms
47-
CMD ["./target/release/dstack-kms"]
55+
RUN rustup target add x86_64-unknown-linux-musl
56+
RUN cargo build --release -p dstack-kms --target x86_64-unknown-linux-musl
57+
58+
FROM alpine:latest
59+
COPY --from=kms-builder /app/dstack/target/x86_64-unknown-linux-musl/release/dstack-kms /usr/local/bin/dstack-kms
60+
COPY --from=kms-builder /app/dstack/kms/dstack-app/entrypoint.sh /entrypoint.sh
61+
COPY --from=dstack-mr-builder /usr/local/bin/dstack-mr /usr/local/bin/dstack-mr
62+
WORKDIR /app/kms
63+
CMD ["/entrypoint.sh"]
4864
volumes:
4965
- kms-volume:/etc/kms
5066
- /var/run/dstack.sock:/var/run/dstack.sock
67+
environment:
68+
- IMAGE_DOWNLOAD_URL=${IMAGE_DOWNLOAD_URL}
5169
ports:
5270
- 8000:8000
5371
depends_on:

kms/dstack-app/deploy-to-vmm.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ else
2929
# The address of the guest agent service listening on Host machine
3030
# GUEST_AGENT_ADDR=127.0.0.1:9205
3131
32+
# The URL of the dstack app image download URL
33+
# IMAGE_DOWNLOAD_URL=https://files.kvin.wang/images/mr_{MR_IMAGE}.tar.gz
34+
3235
# The URL of the Ethereum RPC service
3336
ETH_RPC_URL=https://rpc.phala.network
3437
@@ -49,6 +52,7 @@ required_env_vars=(
4952
"GUEST_AGENT_ADDR"
5053
"KMS_CONTRACT_ADDR"
5154
"ETH_RPC_URL"
55+
"IMAGE_DOWNLOAD_URL"
5256
)
5357

5458
for var in "${required_env_vars[@]}"; do

kms/dstack-app/entrypoint.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/sh
2+
set -e
3+
4+
cat <<EOF > ./kms.toml
5+
[core.image]
6+
verify = true
7+
cache_dir = "./images"
8+
download_url = "${IMAGE_DOWNLOAD_URL}"
9+
download_timeout = "2m"
10+
EOF
11+
12+
exec dstack-kms -c ./kms.toml

kms/src/onboard_service.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,11 @@ pub(crate) async fn update_certs(cfg: &KmsConfig) -> Result<()> {
256256
let k256_key_bytes = fs::read(cfg.k256_key())?;
257257
let k256_key = SigningKey::from_slice(&k256_key_bytes)?;
258258

259-
let domain = fs::read_to_string(cfg.rpc_domain())?;
259+
let domain = if cfg.onboard.auto_bootstrap_domain.is_empty() {
260+
fs::read_to_string(cfg.rpc_domain())?
261+
} else {
262+
cfg.onboard.auto_bootstrap_domain.clone()
263+
};
260264
let domain = domain.trim();
261265

262266
// Regenerate certificates using existing keys

0 commit comments

Comments
 (0)