FROM openeuler/openeuler:24.03-lts AS build

ARG VERSION=26.1.0
ARG TARGETPLATFORM
ARG UMDK_PKG=""

COPY ./${UMDK_PKG} /tmp

RUN yum update -y &&\
    yum install -y wget unzip libnl3-devel &&\
    yum clean all &&\
    rm -rf /var/cache/yum &&\
    rm -rf /tmp/* &&\
    ARCH=$(case "${TARGETPLATFORM}" in \
        "linux/amd64") echo "x86_64" ;; \
        "linux/arm64") echo "aarch64" ;; \
        *) echo "Unsupported TARGETPLATFORM: ${TARGETPLATFORM}" && exit 1 ;; \
    esac) &&\
    if [ "${TARGETPLATFORM}" == "aarch64" ] && [ -n "${UMDK_PKG}" ] && [ -f "/tmp/${UMDK_PKG}" ]; then \
        echo "installing umdk from /tmp/${UMDK_PKG}"; \
        mkdir /tmp/umdk_pkgs; \
        tar -mzxf "/tmp/${UMDK_PKG}" -C /tmp/umdk_pkgs; \
        rpm -ivh /tmp/umdk_pkgs/*.rpm; \
    elif [ "${TARGETPLATFORM}" == "aarch64" ]; then \
        echo "warning: umdk package not provided, install from yum"; \
        yum install -y umdk-urma-bin umdk-urma-devel umdk-urma-lib umdk-urma-tools; \
    else \
        echo "warning: umdk package not supported in platform ${TARGETPLATFORM}"; \
    fi && \
    wget https://gitcode.com/ascend/mind-cluster/releases/download/v${VERSION}/Ascend-mindxdl-noded_${VERSION}_linux-${ARCH}.zip &&\
    unzip Ascend-mindxdl-noded_${VERSION}_linux-${ARCH}.zip -d /build

FROM openeuler/openeuler:24.03-lts

RUN yum install -y shadow &&\
    yum clean all &&\
    rm -rf /var/cache/yum &&\
    usermod root -s /usr/sbin/nologin

ENV LD_LIBRARY_PATH /usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/driver/lib64/common

COPY --from=build /build/noded /usr/local/bin/noded
COPY --from=build /build/NodeDConfiguration.json /build/fdConfig.yaml /build/agreement.txt /usr/local/

RUN chmod 550 /usr/local/bin/noded &&\
    chmod 550 /usr/local/bin &&\
    chmod 440 /usr/local/NodeDConfiguration.json &&\
    chmod 440 /usr/local/fdConfig.yaml &&\
    echo 'umask 027' >> /etc/profile &&\
    echo 'source /etc/profile' >> ~/.bashrc

ENTRYPOINT ["/bin/bash", "-c", "cat /usr/local/agreement.txt; exec /bin/bash"]