# The OpenHarmony SDK ships an x86_64 Linux LLVM toolchain (used by
# scripts/ci_link_check.sh), so pin to linux/amd64 even on arm64 hosts —
# Apple-Silicon users will run this under Rosetta/qemu.
FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/rust:1-bookworm
ARG SDK_VERSION=v6.1
ENV OHOS_SDK_NATIVE=/opt/ohos-sdk/linux/native \
DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
jq \
unzip \
xz-utils \
git \
pkg-config \
build-essential \
clang \
libclang-dev \
&& rm -rf /var/lib/apt/lists/*
COPY install-sdk.sh /usr/local/bin/install-sdk.sh
RUN chmod +x /usr/local/bin/install-sdk.sh \
&& SDK_VERSION="${SDK_VERSION}" /usr/local/bin/install-sdk.sh \
&& chmod -R a+rX /opt/ohos-sdk
# Toolchains are installed for the non-root user that VS Code attaches as.
USER vscode
RUN rustup toolchain install nightly --profile minimal --component rustfmt \
&& rustup component add rustfmt clippy \
&& rustup target add aarch64-unknown-linux-ohos armv7-unknown-linux-ohos x86_64-unknown-linux-ohos