已合并
[docker]: 修改dockerfile提供方式,改为具体独立的Dockerfile #271
LinWei100创建于 6月10日
[docker]: 修改dockerfile提供方式,改为具体独立的Dockerfile #271
已合并
共 29 个文件变更+2721-487
| @@ -1,43 +0,0 @@ | |||
| 1 | -# Build / packaging artefacts | ||
| 2 | -build/ | ||
| 3 | -dist/ | ||
| 4 | -*.egg-info/ | ||
| 5 | -.eggs/ | ||
| 6 | -wheels/ | ||
| 7 | - | ||
| 8 | -# Python caches | ||
| 9 | -__pycache__/ | ||
| 10 | -*.py[cod] | ||
| 11 | -*$py.class | ||
| 12 | -.pytest_cache/ | ||
| 13 | -.mypy_cache/ | ||
| 14 | -.coverage | ||
| 15 | -.coverage.* | ||
| 16 | -htmlcov/ | ||
| 17 | - | ||
| 18 | -# Local virtual environments | ||
| 19 | -.venv/ | ||
| 20 | -venv/ | ||
| 21 | -env/ | ||
| 22 | -.env | ||
| 23 | - | ||
| 24 | -# IDE / editor metadata | ||
| 25 | -.idea/ | ||
| 26 | -.vscode/ | ||
| 27 | - | ||
| 28 | -# VCS metadata (kept out of build context to keep it small) | ||
| 29 | -.git/ | ||
| 30 | -.gitignore | ||
| 31 | - | ||
| 32 | -# Documentation site output | ||
| 33 | -site/ | ||
| 34 | -docs/_build/ | ||
| 35 | - | ||
| 36 | -# Generated protobuf stubs (regenerated inside the image by build.sh) | ||
| 37 | -**/*_pb2.py | ||
| 38 | -**/*_pb2_grpc.py | ||
| 39 | - | ||
| 40 | -# Misc | ||
| 41 | -*.log | ||
| 42 | -*.tmp | ||
| 43 | -.DS_Store | ||
| @@ -1,53 +0,0 @@ | |||
| 1 | -# syntax=docker/dockerfile:1.4 | ||
| 2 | -# | ||
| 3 | -# Build MindIE-PyMotor on top of a vllm-ascend base image, using the local | ||
| 4 | -# repository as the build context. | ||
| 5 | -# | ||
| 6 | -# Example: | ||
| 7 | -# cd <repo-root> | ||
| 8 | -# docker build --network=host \ | ||
| 9 | -# --build-arg BASE_IMAGE_TAG=main \ | ||
| 10 | -# -t mindie-pymotor:dev \ | ||
| 11 | -# -f docker/Dockerfile . | ||
| 12 | -# | ||
| 13 | -# The full base image is `quay.nju.edu.cn/ascend/vllm-ascend:${BASE_IMAGE_TAG}`. | ||
| 14 | -# Pick BASE_IMAGE_TAG from the values listed in `docker/OVERVIEW.md` | ||
| 15 | -# (e.g. `main`, `v0.13.0-a3`, `v0.13.0-310p-openeuler`, ...). | ||
| 16 | - | ||
| 17 | -ARG BASE_IMAGE_TAG=main | ||
| 18 | -FROM quay.nju.edu.cn/ascend/vllm-ascend:${BASE_IMAGE_TAG} | ||
| 19 | - | ||
| 20 | -ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 21 | -ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 22 | - | ||
| 23 | -ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 24 | - PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 25 | - PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 26 | - PYTHONDONTWRITEBYTECODE=1 | ||
| 27 | - | ||
| 28 | -WORKDIR /opt/MindIE-PyMotor | ||
| 29 | - | ||
| 30 | -COPY . /opt/MindIE-PyMotor/ | ||
| 31 | - | ||
| 32 | -RUN set -eux; \ | ||
| 33 | - pip install --no-cache-dir -r requirements.txt; \ | ||
| 34 | - bash build.sh; \ | ||
| 35 | - pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 36 | - rm -rf build/ motor.egg-info/ dist/ | ||
| 37 | - | ||
| 38 | -RUN set -eux; \ | ||
| 39 | - cd examples/features/observability; \ | ||
| 40 | - pip install --no-cache-dir -r requirements.txt; \ | ||
| 41 | - bash build.sh; \ | ||
| 42 | - pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 43 | - rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 44 | - | ||
| 45 | -RUN set -eux; \ | ||
| 46 | - mkdir -p /tmp/motor; \ | ||
| 47 | - mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 48 | - ls -l /tmp/motor/examples; \ | ||
| 49 | - rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 50 | - ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 51 | - find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 52 | - | ||
| 53 | -WORKDIR /workspace | ||
| @@ -1,4 +1,4 @@ | |||
| 1 | -# MindIE-Motor | 1 | +# MindIE-Motor |
| 2 | 2 | ||
| 3 | > English | [中文](./OVERVIEW.zh.md) | 3 | > English | [中文](./OVERVIEW.zh.md) |
| 4 | 4 | ||
| @@ -17,7 +17,7 @@ | |||
| 17 | 17 | ||
| 18 | ## MindIE-Motor | 18 | ## MindIE-Motor |
| 19 | 19 | ||
| 20 | -Provides one‑click PD-separated deployment, flexibly adapts to multiple inference engines (vLLM, SGLang) through a cloud‑native plug‑in architecture, and combines high‑performance scheduling with load balancing capabilities to build highly available, scalable large‑scale inference services. | 20 | +Provides one-click PD-separated deployment, flexibly adapts to multiple inference engines (vLLM, SGLang) through a cloud-native plug-in architecture, and combines high-performance scheduling with load balancing capabilities to build highly available, scalable large-scale inference services. |
| 21 | 21 | ||
| 22 | --- | 22 | --- |
| 23 | 23 | ||
| @@ -28,60 +28,37 @@ Provides one‑click PD-separated deployment, flexibly adapts to multiple infere | |||
| 28 | Official pre-built image tags follow this format: | 28 | Official pre-built image tags follow this format: |
| 29 | 29 | ||
| 30 | ```text | 30 | ```text |
| 31 | -<MotorVersion>-vllm-ascend-<vllm-ascend-version>-<ProductSeries>-<PythonVersion>-<OperatingSystem>-lts | 31 | +<MindIEVersion>-<ProductSeries>-<PythonVersion>-<OperatingSystem>-lts-<Architecture> |
| 32 | ``` | 32 | ``` |
| 33 | 33 | ||
| 34 | | Field | Example Value | Description | | 34 | | Field | Example Value | Description | |
| 35 | |---|---|---| | 35 | |---|---|---| |
| 36 | -| `MotorVersion` | `3.0.0` | Motor version number | | 36 | +| `MindIEVersion` | `3.0.0`、 `3.0.0b1`、 `3.0.0b2` | MindIE-Motor version number | |
| 37 | -| `vllm-ascend version` | `v0.18.0` | Base inference engine (vllm-ascend) version | | 37 | +| `ProductSeries` | `800I-A2`, `800I-A3` | Target Atlas product series | |
| 38 | -| `ProductSeries` | `800I-A2`, `800I-A3`, `300I-Duo` | Target Atlas product series | | ||
| 39 | | `PythonVersion` | `py3.11` | Python version | | 38 | | `PythonVersion` | `py3.11` | Python version | |
| 40 | -| `OperatingSystem` | `Ubuntu24.04-lts` | Base OS and distribution identifier | | 39 | +| `OperatingSystem` | `Ubuntu24.04-lts`, `openEuler24.03-lts` | Base OS and distribution identifier | |
| 40 | +| `Architecture` | `aarch64`, `x86_64` | CPU architecture | | ||
| 41 | 41 | ||
| 42 | -### Image Registry Address | 42 | +### 3.0.0 Dockerfile Directories |
| 43 | 43 | ||
| 44 | -Official MindIE-Motor images are hosted on Quay: | 44 | +Each version/hardware/OS/architecture combination has a self-contained Dockerfile |
| 45 | 45 | ||
| 46 | ```text | 46 | ```text |
| 47 | -quay.io/ascend/mindie-motor | 47 | +docker/mindie-motor-vllm/<tag>/Dockerfile |
| 48 | ``` | 48 | ``` |
| 49 | 49 | ||
| 50 | -**Pull examples:** | 50 | +| Tag | Dockerfile | |
| 51 | +|---|---| | ||
| 52 | +| `3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64/Dockerfile) | | ||
| 53 | +| `3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-x86_64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-x86_64/Dockerfile) | | ||
| 54 | +| `3.0.0-800I-A2-py3.11-openEuler24.03-lts-aarch64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A2-py3.11-openEuler24.03-lts-aarch64/Dockerfile) | | ||
| 55 | +| `3.0.0-800I-A2-py3.11-openEuler24.03-lts-x86_64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A2-py3.11-openEuler24.03-lts-x86_64/Dockerfile) | | ||
| 56 | +| `3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-aarch64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-aarch64/Dockerfile) | | ||
| 57 | +| `3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-x86_64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-x86_64/Dockerfile) | | ||
| 58 | +| `3.0.0-800I-A3-py3.11-openEuler24.03-lts-aarch64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A3-py3.11-openEuler24.03-lts-aarch64/Dockerfile) | | ||
| 59 | +| `3.0.0-800I-A3-py3.11-openEuler24.03-lts-x86_64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A3-py3.11-openEuler24.03-lts-x86_64/Dockerfile) | | ||
| 51 | 60 | ||
| 52 | -```bash | 61 | +Each Dockerfile embeds the matching vllm-ascend base image (v0.18.0 series), target platform, output image tag, entrypoint script, and license agreement. No helper script, external docker files, or environment-variable selection is required. |
| 53 | -# Atlas 800I A2 | ||
| 54 | -docker pull quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts | ||
| 55 | - | ||
| 56 | -# Atlas 800I A3 | ||
| 57 | -docker pull quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A3-py3.11-Ubuntu24.04-lts | ||
| 58 | -``` | ||
| 59 | - | ||
| 60 | -> For faster downloads, replace `quay.io` with `quay.nju.edu.cn`. | ||
| 61 | - | ||
| 62 | -**Locally built image tag example (`build_image.sh` defaults):** | ||
| 63 | - | ||
| 64 | -```text | ||
| 65 | -mindie-pymotor:0.1.0-800I-A2-py3.11-Ubuntu24.04-x86_64 | ||
| 66 | -``` | ||
| 67 | - | ||
| 68 | -> Note: Images built locally via `build_image.sh` use a different naming scheme. The | ||
| 69 | -> OS field comes from the `SYSTEM` environment variable (default `Ubuntu24.04`), | ||
| 70 | -> with an architecture suffix appended. | ||
| 71 | - | ||
| 72 | -### Build Parameters | ||
| 73 | - | ||
| 74 | -The build script reads the following environment variables (all optional, with | ||
| 75 | -sensible defaults). Override them on the command line as needed. | ||
| 76 | - | ||
| 77 | -| Variable | Description | Required | Default | Example Value | | ||
| 78 | -|---|---|---|---|---| | ||
| 79 | -| SYSTEM | Server OS and version | No | `Ubuntu24.04` | Ubuntu24.04 / openEuler24.03 | | ||
| 80 | -| DEVICE | Atlas device model | No | `910` | 310 / 910 / A3 | | ||
| 81 | -| ARCH | System architecture | No | `$(uname -m)` | x86_64 / aarch64 | | ||
| 82 | -| PYMOTOR_VERSION | MindIE-PyMotor version number | No | `0.1.0` | 0.1.0 | | ||
| 83 | -| VLLM_ASCEND_VERSION | vllm-ascend base image version/branch | No | `main` | v0.18.0 / v0.13.0 / main | | ||
| 84 | -| IMAGE_VERSION | Version tag for the final built image | No | `${PYMOTOR_VERSION}` | v1.0.0 | | ||
| 85 | 62 | ||
| 86 | --- | 63 | --- |
| 87 | 64 | ||
| @@ -96,123 +73,44 @@ sensible defaults). Override them on the command line as needed. | |||
| 96 | 73 | ||
| 97 | --- | 74 | --- |
| 98 | 75 | ||
| 99 | -### Pull MindIE-Motor Image | ||
| 100 | - | ||
| 101 | -Pull a pre-built image from the official registry : | ||
| 102 | - | ||
| 103 | -```bash | ||
| 104 | -# Atlas 800I A2 | ||
| 105 | -docker pull quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts | ||
| 106 | - | ||
| 107 | -# Atlas 800I A3 | ||
| 108 | -docker pull quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A3-py3.11-Ubuntu24.04-lts | ||
| 109 | -``` | ||
| 110 | - | ||
| 111 | ### Build MindIE-Motor Image | 76 | ### Build MindIE-Motor Image |
| 112 | 77 | ||
| 113 | -The image is built directly from the local repository: `docker/Dockerfile` | 78 | +Each Dockerfile clones the pinned branch and commit during the build. **No local source tree or build context is required.** Replace `<tag>` with the desired combination: |
| 114 | -takes care of installing Python dependencies, compiling the wheel via | ||
| 115 | -`build.sh`, and installing it into the base image. | ||
| 116 | - | ||
| 117 | -A ready-to-use helper script is provided at `docker/build_image.sh`. From the | ||
| 118 | -**repository root** simply run: | ||
| 119 | 79 | ||
| 120 | ```bash | 80 | ```bash |
| 121 | -# Default: Ubuntu24.04 / 910b / vllm-ascend tag "main" | 81 | +TAG="3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64" |
| 122 | -bash docker/build_image.sh | ||
| 123 | 82 | ||
| 124 | -# Override defaults via environment variables | 83 | +docker build --network=host \ |
| 125 | -SYSTEM=openEuler24.03 DEVICE=910c VLLM_ASCEND_VERSION=v0.13.0 \ | 84 | + --platform=linux/arm64 \ |
| 126 | - bash docker/build_image.sh | 85 | + -t "mindie-motor-vllm:${TAG}" \ |
| 127 | -``` | 86 | + -f "docker/mindie-motor-vllm/${TAG}/Dockerfile" \ |
| 128 | - | ||
| 129 | -The script's contents are reproduced below for reference: | ||
| 130 | - | ||
| 131 | -```sh | ||
| 132 | -#!/bin/bash | ||
| 133 | -# Build a MindIE-PyMotor image from the local source tree. | ||
| 134 | -# Run from the repository root: | ||
| 135 | -# bash docker/build_image.sh | ||
| 136 | -# Override defaults via environment variables, e.g.: | ||
| 137 | -# SYSTEM=openEuler24.03 DEVICE=910c VLLM_ASCEND_VERSION=v0.13.0 \ | ||
| 138 | -# bash docker/build_image.sh | ||
| 139 | -set -euo pipefail | ||
| 140 | - | ||
| 141 | -SYSTEM=${SYSTEM:-Ubuntu24.04} # Ubuntu24.04 / openEuler24.03 | ||
| 142 | -DEVICE=${DEVICE:-910b} # 310p / 910b / 910c | ||
| 143 | -ARCH=${ARCH:-$(uname -m)} # x86_64 / aarch64 | ||
| 144 | -PYMOTOR_VERSION=${PYMOTOR_VERSION:-0.1.0} # MindIE-PyMotor version | ||
| 145 | -VLLM_ASCEND_VERSION=${VLLM_ASCEND_VERSION:-main} # vllm-ascend base image tag prefix | ||
| 146 | -IMAGE_VERSION=${IMAGE_VERSION:-${PYMOTOR_VERSION}} # Tag of the produced image | ||
| 147 | - | ||
| 148 | -case "${DEVICE}" in | ||
| 149 | - 310p) PRODUCT=300I-Duo ;; | ||
| 150 | - 910b) PRODUCT=800I-A2 ;; | ||
| 151 | - 910c) PRODUCT=800I-A3 ;; | ||
| 152 | - *) echo "Unsupported DEVICE: ${DEVICE}" >&2; exit 1 ;; | ||
| 153 | -esac | ||
| 154 | - | ||
| 155 | -case "${SYSTEM}_${DEVICE}" in | ||
| 156 | - Ubuntu24.04_310p) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-310p ;; | ||
| 157 | - openEuler24.03_310p) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-310p-openeuler ;; | ||
| 158 | - Ubuntu24.04_910b) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION} ;; | ||
| 159 | - openEuler24.03_910b) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-openeuler ;; | ||
| 160 | - Ubuntu24.04_910c) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-a3 ;; | ||
| 161 | - openEuler24.03_910c) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-a3-openeuler ;; | ||
| 162 | - *) echo "Unsupported SYSTEM/DEVICE combo: ${SYSTEM}/${DEVICE}" >&2; exit 1 ;; | ||
| 163 | -esac | ||
| 164 | - | ||
| 165 | -IMAGE_TAG="mindie-pymotor:${IMAGE_VERSION}-${PRODUCT}-py3.11-${SYSTEM}-${ARCH}" | ||
| 166 | - | ||
| 167 | -PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd) | ||
| 168 | -cd "${PROJECT_ROOT}" | ||
| 169 | - | ||
| 170 | -echo "Building ${IMAGE_TAG} from quay.nju.edu.cn/ascend/vllm-ascend:${BASE_IMAGE_TAG} ..." | ||
| 171 | -docker build \ | ||
| 172 | - --network=host \ | ||
| 173 | - --build-arg "BASE_IMAGE_TAG=${BASE_IMAGE_TAG}" \ | ||
| 174 | - -t "${IMAGE_TAG}" \ | ||
| 175 | - -f docker/Dockerfile \ | ||
| 176 | . | 87 | . |
| 177 | - | ||
| 178 | -echo "Done. Image tag: ${IMAGE_TAG}" | ||
| 179 | ``` | 88 | ``` |
| 180 | 89 | ||
| 181 | -What the build does, in order: | 90 | +Each Dockerfile header comment contains the exact `--platform` value, source repository info, and full `docker build` command. |
| 182 | 91 | ||
| 183 | -1. Pull the base image `quay.nju.edu.cn/ascend/vllm-ascend:${BASE_IMAGE_TAG}`. | 92 | +3.0.0 source mapping: |
| 184 | -2. Copy the current source tree into `/opt/MindIE-PyMotor` inside the image. | ||
| 185 | -3. Inside the image, run: | ||
| 186 | 93 | ||
| 187 | - ```bash | 94 | +| Image Version | Repository | Branch | Commit | |
| 188 | - pip install -r requirements.txt | 95 | +|---|---|---|---| |
| 189 | - bash build.sh | 96 | +| `3.0.0` | `https://gitcode.com/Ascend/MindIE-PyMotor.git` | `v3.0.0` | `383d1787ed3fc27aaad2db9cc5506d40c258c279` | |
| 190 | - cd dist && pip install motor*.whl --force-reinstall | ||
| 191 | - ``` | ||
| 192 | 97 | ||
| 193 | -4. Then build and install the `ccae_reporter` helper from | 98 | +The build process: |
| 194 | - `examples/features/observability/`, which lets the image integrate with | ||
| 195 | - the CCAE cluster autonomous engine: | ||
| 196 | 99 | ||
| 197 | - ```bash | 100 | +1. Pulls the matching vllm-ascend base image. |
| 198 | - cd examples/features/observability | 101 | +2. Clones the pinned MindIE-PyMotor source into `/opt/MindIE-PyMotor`. |
| 199 | - pip install -r requirements.txt | 102 | +3. Installs dependencies, compiles, and installs the `motor` wheel. |
| 200 | - bash build.sh | 103 | +4. Builds and installs the `ccae_reporter` observability component. |
| 201 | - pip install --force-reinstall dist/ccae_reporter-*.whl | 104 | +5. Generates the entrypoint script and license agreement inline within the Dockerfile. |
| 202 | - ``` | ||
| 203 | 105 | ||
| 204 | ### Run MindIE-Motor Container | 106 | ### Run MindIE-Motor Container |
| 205 | 107 | ||
| 206 | -Make sure Atlas drivers are installed on the host and `/dev/davinci*` device nodes | 108 | +Confirm that Atlas drivers are installed on the host and `/dev/davinci*` device nodes are available. |
| 207 | -are available before running. | ||
| 208 | 109 | ||
| 209 | -#### Minimal verification command | 110 | +#### Minimal Verification |
| 210 | - | ||
| 211 | -Use this to confirm the image starts and can access NPUs (replace `IMAGE_NAME` with | ||
| 212 | -your actual tag): | ||
| 213 | 111 | ||
| 214 | ```bash | 112 | ```bash |
| 215 | -IMAGE_NAME="quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts" | 113 | +IMAGE_NAME="mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64" |
| 216 | 114 | ||
| 217 | docker run --rm -it \ | 115 | docker run --rm -it \ |
| 218 | --device=/dev/davinci_manager \ | 116 | --device=/dev/davinci_manager \ |
| @@ -227,16 +125,13 @@ docker run --rm -it \ | |||
| 227 | bash -c "npu-smi info && python -c 'import motor; print(\"motor ok\")'" | 125 | bash -c "npu-smi info && python -c 'import motor; print(\"motor ok\")'" |
| 228 | ``` | 126 | ``` |
| 229 | 127 | ||
| 230 | -#### Start an inference service | 128 | +#### Start Inference Service |
| 231 | 129 | ||
| 232 | -A full deployment requires `boot.sh`, `user_config.json`, and related files mounted | 130 | +Prepare `boot.sh`, `user_config.json`, and other config files before deployment. See the [docker-only single-container deployment guide](../docs/zh/developer_guide/docker_only/single_container_docker_only.md) for the full workflow. |
| 233 | -into the container. See the [docker-only single-container deployment | ||
| 234 | -guide](../docs/zh/developer_guide/docker_only/single_container_docker_only.md) for the | ||
| 235 | -end-to-end workflow. | ||
| 236 | 131 | ||
| 237 | ```bash | 132 | ```bash |
| 238 | -CONFIGMAP_PATH="/path/to/configmap" # absolute path; must contain boot.sh, user_config.json, etc. | 133 | +CONFIGMAP_PATH="/path/to/configmap" |
| 239 | -IMAGE_NAME="quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts" | 134 | +IMAGE_NAME="mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64" |
| 240 | 135 | ||
| 241 | docker run -u root --rm --name mindie-motor \ | 136 | docker run -u root --rm --name mindie-motor \ |
| 242 | -e ASCEND_RUNTIME_OPTIONS=NODRV \ | 137 | -e ASCEND_RUNTIME_OPTIONS=NODRV \ |
| @@ -263,59 +158,46 @@ docker run -u root --rm --name mindie-motor \ | |||
| 263 | 158 | ||
| 264 | Common parameters: | 159 | Common parameters: |
| 265 | 160 | ||
| 266 | -| Parameter / env var | Description | | 161 | +| Parameter / Env Var | Description | |
| 267 | |---|---| | 162 | |---|---| |
| 268 | | `--device=/dev/davinci{N}` | Map NPU devices; add `davinci0`, `davinci1`, etc. as needed | | 163 | | `--device=/dev/davinci{N}` | Map NPU devices; add `davinci0`, `davinci1`, etc. as needed | |
| 269 | -| `--device=/dev/davinci_manager`, etc. | Ascend management devices; usually required for inference | | 164 | +| `--device=/dev/davinci_manager` etc. | Atlas management devices, usually required | |
| 270 | -| `-v /usr/local/Ascend/driver:...` | Mount the host Ascend driver directory | | 165 | +| `-v /usr/local/Ascend/driver:...` | Mount host Atlas driver directory | |
| 271 | -| `-v ${CONFIGMAP_PATH}:...` | Mount the startup scripts and config directory | | 166 | +| `-v ${CONFIGMAP_PATH}:...` | Mount startup scripts and config directory | |
| 272 | -| `-p <host>:<container>` | Expose API ports; must match `user_config.json` | | 167 | +| `-p <host>:<container>` | Expose API ports per `user_config.json` | |
| 273 | -| `ASCEND_RUNTIME_OPTIONS=NODRV` | Reuse the host driver; no in-container driver install | | 168 | +| `ASCEND_RUNTIME_OPTIONS=NODRV` | Reuse host drivers without reinstalling inside the container | |
| 274 | -| `CONFIGMAP_PATH` | In-container path to startup scripts; must match the mount | | 169 | +| `CONFIGMAP_PATH` | Path to startup scripts inside the container | |
| 275 | -| `CONFIG_PATH` | Motor config directory; default `/usr/local/Ascend/pyMotor/conf` | | 170 | +| `CONFIG_PATH` | Motor config directory, default `/usr/local/Ascend/pyMotor/conf` | |
| 276 | | `ROLE` | Deployment role; use `SINGLE_CONTAINER` for single-container PD separation | | 171 | | `ROLE` | Deployment role; use `SINGLE_CONTAINER` for single-container PD separation | |
| 277 | 172 | ||
| 278 | -### How to Extend | 173 | +### Extend the Image |
| 279 | 174 | ||
| 280 | ```bash | 175 | ```bash |
| 281 | -# Use MindIE-PyMotor image as base, add user software | 176 | +FROM mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64 |
| 282 | -FROM quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts | ||
| 283 | 177 | ||
| 284 | RUN apt update -y && \ | 178 | RUN apt update -y && \ |
| 285 | apt install gcc ... | 179 | apt install gcc ... |
| 286 | - | ||
| 287 | -... | ||
| 288 | ``` | 180 | ``` |
| 289 | 181 | ||
| 290 | --- | 182 | --- |
| 291 | 183 | ||
| 292 | ## Supported Hardware | 184 | ## Supported Hardware |
| 293 | 185 | ||
| 294 | -| Chip Series | Product Example | Architecture | | 186 | +| Chip Series | Product Examples | Architecture | |
| 295 | |---|---|---| | 187 | |---|---|---| |
| 296 | | Atlas 910 | Atlas 800T A2, Atlas 900 A2 PoD | ARM64 / x86_64 | | 188 | | Atlas 910 | Atlas 800T A2, Atlas 900 A2 PoD | ARM64 / x86_64 | |
| 297 | | Atlas A3 | Atlas 800T A3 | ARM64 / x86_64 | | 189 | | Atlas A3 | Atlas 800T A3 | ARM64 / x86_64 | |
| 298 | -| Atlas 310 | Atlas 300I Pro, Atlas 300V Pro | ARM64 / x86_64 | | ||
| 299 | 190 | ||
| 300 | --- | 191 | --- |
| 301 | 192 | ||
| 302 | ## Image Version Notes | 193 | ## Image Version Notes |
| 303 | 194 | ||
| 304 | -| Image Version | Description | Notes | | 195 | +| Version | Description | Notes | |
| 305 | | - | - | - | | 196 | | - | - | - | |
| 306 | -| 3.0.0 | MindIE 3.0.0 Release | 2026/5/6: Initial release | | 197 | +| 3.0.0 | MindIE 3.0.0 Release | 2026/5/6: initial release | |
| 307 | -| 3.0.0b2 | MindIE 3.0.0 Beta2 | 2026/4/21: Initial release; MindIE Atlas 300I DUO hardware supports dynamic LoRA load/unload, per-tensor loading, and Qwen3-VL 8B/30B-A3B models | | ||
| 308 | -| 2.3.1 | MindIE 2.3.1 patch release | 2026/4/16: Initial release; fixes DSv3.1 w8a8c8 BFCL-multiturn accuracy degradation, request nesting layer limit of 10 layers, and related issues | | ||
| 309 | -| 2.3.0 | MindIE 2.3.0 commercial release | 2026/1/18: Initial release | | ||
| 310 | -| 2.2.RC1 | MindIE 2.2 release candidate | 2025/12/31: ras-restart script optimization; 2025/11/21: Initial release | | ||
| 311 | -| 2.2.T32 | DeepSeek-V3.2 performance optimization | 2025/12/05: Performance optimization; for DSv3.2 trial only, not recommended for other models. Guide: https://www.hiascend.com/forum/thread-0278200283718182227-1-1.html | | ||
| 312 | -| 2.1.RC2 | MindIE 2.1 patch release | 2025/9/21: Initial release | | ||
| 313 | -| 2.1.RC1 | MindIE 2.1 release candidate | 2025/8/15: Default transformers version upgraded to 4.51.0 | | ||
| 314 | -| 2.0.RC2 | MindIE 2.0 release candidate | | | ||
| 315 | -| 1.0.0 | MindIE 1.0 official release | | | ||
| 316 | 198 | ||
| 317 | ## License | 199 | ## License |
| 318 | 200 | ||
| 319 | -See the [license information of Motor](https://gitcode.com/Ascend/MindIE-PyMotor/blob/master/LICENSE.md) included in these images. | 201 | +See the [Motor license](https://gitcode.com/Ascend/MindIE-PyMotor/blob/master/LICENSE.md) for license information included in these images. |
| 320 | 202 | ||
| 321 | -As with all container images, pre‑installed software packages (Python, system libraries, etc.) may be subject to their own licenses. | 203 | +As with all container images, pre-installed software packages (Python, system libraries, etc.) may be subject to their own licenses. |
| @@ -1,4 +1,4 @@ | |||
| 1 | -# MindIE-Motor | 1 | +# MindIE-Motor |
| 2 | 2 | ||
| 3 | > [English](./OVERVIEW.md) | 中文 | 3 | > [English](./OVERVIEW.md) | 中文 |
| 4 | 4 | ||
| @@ -28,58 +28,37 @@ | |||
| 28 | 官方预构建镜像 Tag 遵循以下格式: | 28 | 官方预构建镜像 Tag 遵循以下格式: |
| 29 | 29 | ||
| 30 | ```text | 30 | ```text |
| 31 | -<Motor版本>-vllm-ascend-<vllm-ascend版本>-<产品系列>-<python版本>-<操作系统>-lts | 31 | +<MindIE版本>-<产品系列>-<python版本>-<操作系统>-lts-<架构> |
| 32 | ``` | 32 | ``` |
| 33 | 33 | ||
| 34 | | 字段 | 示例值 | 说明 | | 34 | | 字段 | 示例值 | 说明 | |
| 35 | |---|---|---| | 35 | |---|---|---| |
| 36 | -| `Motor版本` | `3.0.0` | Motor 版本号 | | 36 | +| `MindIE版本` | `3.0.0`、 `3.0.0b1`、 `3.0.0b2`| MindIE-Motor 版本号 | |
| 37 | -| `vllm-ascend版本` | `v0.18.0` | 基础推理引擎 vllm-ascend 版本 | | 37 | +| `产品系列` | `800I-A2`、`800I-A3` | 目标昇腾产品系列 | |
| 38 | -| `产品系列` | `800I-A2`、`800I-A3`、`300I-Duo` | 目标昇腾产品系列 | | ||
| 39 | | `python版本` | `py3.11` | Python 版本 | | 38 | | `python版本` | `py3.11` | Python 版本 | |
| 40 | -| `操作系统` | `Ubuntu24.04-lts` | 基础操作系统及发行版标识 | | 39 | +| `操作系统` | `Ubuntu24.04-lts`、`openEuler24.03-lts` | 基础操作系统及发行版标识 | |
| 40 | +| `架构` | `aarch64`、`x86_64` | CPU 架构 | | ||
| 41 | 41 | ||
| 42 | -### 镜像仓库地址 | 42 | +### 3.0.0 版本 Dockerfile 目录 |
| 43 | 43 | ||
| 44 | -MindIE-Motor 官方镜像托管在 Quay 仓库: | 44 | +每个版本/硬件/系统/架构组合均有独立 Dockerfile |
| 45 | 45 | ||
| 46 | ```text | 46 | ```text |
| 47 | -quay.io/ascend/mindie-motor | 47 | +docker/mindie-motor-vllm/<tag>/Dockerfile |
| 48 | ``` | 48 | ``` |
| 49 | 49 | ||
| 50 | -**拉取示例:** | 50 | +| Tag | Dockerfile | |
| 51 | +|---|---| | ||
| 52 | +| `3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64/Dockerfile) | | ||
| 53 | +| `3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-x86_64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-x86_64/Dockerfile) | | ||
| 54 | +| `3.0.0-800I-A2-py3.11-openEuler24.03-lts-aarch64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A2-py3.11-openEuler24.03-lts-aarch64/Dockerfile) | | ||
| 55 | +| `3.0.0-800I-A2-py3.11-openEuler24.03-lts-x86_64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A2-py3.11-openEuler24.03-lts-x86_64/Dockerfile) | | ||
| 56 | +| `3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-aarch64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-aarch64/Dockerfile) | | ||
| 57 | +| `3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-x86_64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-x86_64/Dockerfile) | | ||
| 58 | +| `3.0.0-800I-A3-py3.11-openEuler24.03-lts-aarch64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A3-py3.11-openEuler24.03-lts-aarch64/Dockerfile) | | ||
| 59 | +| `3.0.0-800I-A3-py3.11-openEuler24.03-lts-x86_64` | [Dockerfile](./mindie-motor-vllm/3.0.0-800I-A3-py3.11-openEuler24.03-lts-x86_64/Dockerfile) | | ||
| 51 | 60 | ||
| 52 | -```bash | 61 | +每个 Dockerfile 均已内置对应的基础镜像(vllm-ascend v0.18.0 系列)、目标平台、镜像 Tag、入口脚本与使用协议,无需额外脚本、外部 docker 文件或环境变量选择。 |
| 53 | -# Atlas 800I A2(昇腾 910B) | ||
| 54 | -docker pull quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts | ||
| 55 | - | ||
| 56 | -# Atlas 800I A3(昇腾 A3) | ||
| 57 | -docker pull quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A3-py3.11-Ubuntu24.04-lts | ||
| 58 | -``` | ||
| 59 | - | ||
| 60 | -> 为提高下载速度,可将 `quay.io` 替换为 `quay.nju.edu.cn`。 | ||
| 61 | - | ||
| 62 | -**本地构建镜像 Tag 示例(`build_image.sh` 默认参数):** | ||
| 63 | - | ||
| 64 | -```text | ||
| 65 | -mindie-pymotor:0.1.0-800I-A2-py3.11-Ubuntu24.04-x86_64 | ||
| 66 | -``` | ||
| 67 | - | ||
| 68 | -> 注:本地通过 `build_image.sh` 构建的镜像命名规则与官方预构建镜像不同;操作系统字段取自 `SYSTEM` 环境变量(默认 `Ubuntu24.04`),并附带架构后缀。 | ||
| 69 | - | ||
| 70 | -### 构建参数 | ||
| 71 | - | ||
| 72 | -构建脚本通过环境变量读取以下参数,全部为可选项(均带有默认值),按需在命令行 | ||
| 73 | -覆盖即可。 | ||
| 74 | - | ||
| 75 | -| 变量 | 说明 | 是否必填 | 默认值 | 示例值 | | ||
| 76 | -|------|------|----------|--------|--------| | ||
| 77 | -| SYSTEM | 服务器操作系统及版本 | 否 | `Ubuntu24.04` | Ubuntu24.04 / openEuler24.03 | | ||
| 78 | -| DEVICE | 昇腾设备型号 | 否 | `910b` | 310p / 910b / 910c | | ||
| 79 | -| ARCH | 系统架构 | 否 | `$(uname -m)` | x86_64 / aarch64 | | ||
| 80 | -| PYMOTOR_VERSION | MindIE-PyMotor 版本号 | 否 | `0.1.0` | 0.1.0 | | ||
| 81 | -| VLLM_ASCEND_VERSION | vllm-ascend 基础镜像版本/分支 | 否 | `main` | v0.18.0 / v0.13.0 / main | | ||
| 82 | -| IMAGE_VERSION | 最终构建镜像的版本标识 | 否 | `${PYMOTOR_VERSION}` | v1.0.0 | | ||
| 83 | 62 | ||
| 84 | --- | 63 | --- |
| 85 | 64 | ||
| @@ -90,111 +69,39 @@ mindie-pymotor:0.1.0-800I-A2-py3.11-Ubuntu24.04-x86_64 | |||
| 90 | #### 安装驱动 | 69 | #### 安装驱动 |
| 91 | 70 | ||
| 92 | - 宿主机上已经安装好固件与驱动,具体可参考[安装驱动和固件](https://www.hiascend.com/document/detail/zh/mindie/100/envdeployment/instg/mindie_instg_0006.html)。 | 71 | - 宿主机上已经安装好固件与驱动,具体可参考[安装驱动和固件](https://www.hiascend.com/document/detail/zh/mindie/100/envdeployment/instg/mindie_instg_0006.html)。 |
| 93 | -- 宿主机上已经安装好Docker。 | 72 | +- 宿主机上已经安装好 Docker。 |
| 94 | 73 | ||
| 95 | --- | 74 | --- |
| 96 | 75 | ||
| 97 | -### 拉取 MindIE-Motor 镜像 | ||
| 98 | - | ||
| 99 | -从官方仓库拉取预构建镜像(按目标硬件与 vllm-ascend 版本选择对应 Tag): | ||
| 100 | - | ||
| 101 | -```bash | ||
| 102 | -# Atlas 800I A2(昇腾 910B,build_image.sh 默认 DEVICE=910b) | ||
| 103 | -docker pull quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts | ||
| 104 | - | ||
| 105 | -# Atlas 800I A3(昇腾 A3) | ||
| 106 | -docker pull quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A3-py3.11-Ubuntu24.04-lts | ||
| 107 | -``` | ||
| 108 | - | ||
| 109 | ### 构建 MindIE-Motor 镜像 | 76 | ### 构建 MindIE-Motor 镜像 |
| 110 | 77 | ||
| 111 | -镜像直接基于本地仓库源码构建:`docker/Dockerfile` 会负责安装 Python 依赖、调用 | 78 | +每个 Dockerfile 会在构建时自动 clone 指定分支与 commit 的源码,**无需本地源码或构建上下文**。将 `<tag>` 替换为目标组合后执行: |
| 112 | -`build.sh` 编译 wheel 包,并把它安装到基础镜像中。 | ||
| 113 | - | ||
| 114 | -仓库已经提供好封装脚本 `docker/build_image.sh`,在 **仓库根目录** 直接执行即可: | ||
| 115 | 79 | ||
| 116 | ```bash | 80 | ```bash |
| 117 | -# 默认参数:Ubuntu24.04 / 910b / vllm-ascend tag "main" | 81 | +TAG="3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64" |
| 118 | -bash docker/build_image.sh | ||
| 119 | 82 | ||
| 120 | -# 通过环境变量覆盖默认值 | 83 | +docker build --network=host \ |
| 121 | -SYSTEM=openEuler24.03 DEVICE=910c VLLM_ASCEND_VERSION=v0.13.0 \ | 84 | + --platform=linux/arm64 \ |
| 122 | - bash docker/build_image.sh | 85 | + -t "mindie-motor-vllm:${TAG}" \ |
| 123 | -``` | 86 | + -f "docker/mindie-motor-vllm/${TAG}/Dockerfile" \ |
| 124 | - | ||
| 125 | -脚本内容如下,供参考: | ||
| 126 | - | ||
| 127 | -```sh | ||
| 128 | -#!/bin/bash | ||
| 129 | -# 基于本地源码构建 MindIE-PyMotor 镜像。 | ||
| 130 | -# 在仓库根目录执行: | ||
| 131 | -# bash docker/build_image.sh | ||
| 132 | -# 通过环境变量覆盖默认值,例如: | ||
| 133 | -# SYSTEM=openEuler24.03 DEVICE=910c VLLM_ASCEND_VERSION=v0.13.0 \ | ||
| 134 | -# bash docker/build_image.sh | ||
| 135 | -set -euo pipefail | ||
| 136 | - | ||
| 137 | -SYSTEM=${SYSTEM:-Ubuntu24.04} # Ubuntu24.04 / openEuler24.03 | ||
| 138 | -DEVICE=${DEVICE:-910b} # 310p / 910b / 910c | ||
| 139 | -ARCH=${ARCH:-$(uname -m)} # x86_64 / aarch64 | ||
| 140 | -PYMOTOR_VERSION=${PYMOTOR_VERSION:-0.1.0} # MindIE-PyMotor 版本号 | ||
| 141 | -VLLM_ASCEND_VERSION=${VLLM_ASCEND_VERSION:-main} # vllm-ascend 基础镜像 tag 前缀 | ||
| 142 | -IMAGE_VERSION=${IMAGE_VERSION:-${PYMOTOR_VERSION}} # 产物镜像的版本标识 | ||
| 143 | - | ||
| 144 | -case "${DEVICE}" in | ||
| 145 | - 310p) PRODUCT=300I-Duo ;; | ||
| 146 | - 910b) PRODUCT=800I-A2 ;; | ||
| 147 | - 910c) PRODUCT=800I-A3 ;; | ||
| 148 | - *) echo "不支持的 DEVICE: ${DEVICE}" >&2; exit 1 ;; | ||
| 149 | -esac | ||
| 150 | - | ||
| 151 | -case "${SYSTEM}_${DEVICE}" in | ||
| 152 | - Ubuntu24.04_310p) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-310p ;; | ||
| 153 | - openEuler24.03_310p) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-310p-openeuler ;; | ||
| 154 | - Ubuntu24.04_910b) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION} ;; | ||
| 155 | - openEuler24.03_910b) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-openeuler ;; | ||
| 156 | - Ubuntu24.04_910c) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-a3 ;; | ||
| 157 | - openEuler24.03_910c) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-a3-openeuler ;; | ||
| 158 | - *) echo "不支持的 SYSTEM/DEVICE 组合: ${SYSTEM}/${DEVICE}" >&2; exit 1 ;; | ||
| 159 | -esac | ||
| 160 | - | ||
| 161 | -IMAGE_TAG="mindie-pymotor:${IMAGE_VERSION}-${PRODUCT}-py3.11-${SYSTEM}-${ARCH}" | ||
| 162 | - | ||
| 163 | -PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd) | ||
| 164 | -cd "${PROJECT_ROOT}" | ||
| 165 | - | ||
| 166 | -echo "正在基于 quay.nju.edu.cn/ascend/vllm-ascend:${BASE_IMAGE_TAG} 构建 ${IMAGE_TAG} ..." | ||
| 167 | -docker build \ | ||
| 168 | - --network=host \ | ||
| 169 | - --build-arg "BASE_IMAGE_TAG=${BASE_IMAGE_TAG}" \ | ||
| 170 | - -t "${IMAGE_TAG}" \ | ||
| 171 | - -f docker/Dockerfile \ | ||
| 172 | . | 87 | . |
| 173 | - | ||
| 174 | -echo "构建完成,镜像 tag: ${IMAGE_TAG}" | ||
| 175 | ``` | 88 | ``` |
| 176 | 89 | ||
| 90 | +各 Dockerfile 头部注释中已写明对应的 `--platform`、源码仓库信息与完整 `docker build` 命令,可直接复制使用。 | ||
| 91 | + | ||
| 92 | +3.0.0 版本源码映射: | ||
| 93 | + | ||
| 94 | +| 镜像版本 | 仓库 | 分支 | Commit | | ||
| 95 | +|---|---|---|---| | ||
| 96 | +| `3.0.0` | `https://gitcode.com/Ascend/MindIE-PyMotor.git` | `v3.0.0` | `383d1787ed3fc27aaad2db9cc5506d40c258c279` | | ||
| 97 | + | ||
| 177 | 构建过程依次完成: | 98 | 构建过程依次完成: |
| 178 | 99 | ||
| 179 | -1. 拉取基础镜像 `quay.nju.edu.cn/ascend/vllm-ascend:${BASE_IMAGE_TAG}`。 | 100 | +1. 拉取对应 vllm-ascend 基础镜像。 |
| 180 | -2. 把当前源码复制到镜像内的 `/opt/MindIE-PyMotor`。 | 101 | +2. Clone 指定分支与 commit 的 MindIE-PyMotor 源码到 `/opt/MindIE-PyMotor`。 |
| 181 | -3. 在镜像中执行: | 102 | +3. 安装依赖、编译并安装 `motor` wheel 包。 |
| 182 | - | 103 | +4. 编译并安装 `ccae_reporter` 可观测组件。 |
| 183 | - ```bash | 104 | +5. 在 Dockerfile 内联生成容器入口脚本与使用协议。 |
| 184 | - pip install -r requirements.txt | ||
| 185 | - bash build.sh | ||
| 186 | - cd dist && pip install motor*.whl --force-reinstall | ||
| 187 | - ``` | ||
| 188 | - | ||
| 189 | -4. 接着编译并安装 `examples/features/observability/` 下的 `ccae_reporter` 组件, | ||
| 190 | - 使镜像具备对接 CCAE 集群自智引擎的能力: | ||
| 191 | - | ||
| 192 | - ```bash | ||
| 193 | - cd examples/features/observability | ||
| 194 | - pip install -r requirements.txt | ||
| 195 | - bash build.sh | ||
| 196 | - pip install --force-reinstall dist/ccae_reporter-*.whl | ||
| 197 | - ``` | ||
| 198 | 105 | ||
| 199 | ### 运行 MindIE-Motor 容器 | 106 | ### 运行 MindIE-Motor 容器 |
| 200 | 107 | ||
| @@ -202,10 +109,8 @@ echo "构建完成,镜像 tag: ${IMAGE_TAG}" | |||
| 202 | 109 | ||
| 203 | #### 最小验证命令 | 110 | #### 最小验证命令 |
| 204 | 111 | ||
| 205 | -以下命令可验证镜像能否正常启动并访问 NPU(将 `IMAGE_NAME` 替换为实际镜像 tag): | ||
| 206 | - | ||
| 207 | ```bash | 112 | ```bash |
| 208 | -IMAGE_NAME="quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts" | 113 | +IMAGE_NAME="mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64" |
| 209 | 114 | ||
| 210 | docker run --rm -it \ | 115 | docker run --rm -it \ |
| 211 | --device=/dev/davinci_manager \ | 116 | --device=/dev/davinci_manager \ |
| @@ -225,8 +130,8 @@ docker run --rm -it \ | |||
| 225 | 实际部署需提前准备 `boot.sh`、`user_config.json` 等配置文件,并挂载到容器内。完整端到端流程见 [docker-only 单容器部署指南](../docs/zh/developer_guide/docker_only/single_container_docker_only.md)。 | 130 | 实际部署需提前准备 `boot.sh`、`user_config.json` 等配置文件,并挂载到容器内。完整端到端流程见 [docker-only 单容器部署指南](../docs/zh/developer_guide/docker_only/single_container_docker_only.md)。 |
| 226 | 131 | ||
| 227 | ```bash | 132 | ```bash |
| 228 | -CONFIGMAP_PATH="/path/to/configmap" # 绝对路径,目录内需含 boot.sh、user_config.json 等 | 133 | +CONFIGMAP_PATH="/path/to/configmap" |
| 229 | -IMAGE_NAME="quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts" | 134 | +IMAGE_NAME="mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64" |
| 230 | 135 | ||
| 231 | docker run -u root --rm --name mindie-motor \ | 136 | docker run -u root --rm --name mindie-motor \ |
| 232 | -e ASCEND_RUNTIME_OPTIONS=NODRV \ | 137 | -e ASCEND_RUNTIME_OPTIONS=NODRV \ |
| @@ -268,13 +173,10 @@ docker run -u root --rm --name mindie-motor \ | |||
| 268 | ### 如何二次开发 | 173 | ### 如何二次开发 |
| 269 | 174 | ||
| 270 | ```bash | 175 | ```bash |
| 271 | -# 以 MindIE-PyMotor 镜像为基础镜像,叠加用户软件 | 176 | +FROM mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64 |
| 272 | -FROM quay.io/ascend/mindie-motor:3.0.0-vllm-ascend-v0.18.0-800I-A2-py3.11-Ubuntu24.04-lts | ||
| 273 | 177 | ||
| 274 | RUN apt update -y && \ | 178 | RUN apt update -y && \ |
| 275 | apt install gcc ... | 179 | apt install gcc ... |
| 276 | - | ||
| 277 | -... | ||
| 278 | ``` | 180 | ``` |
| 279 | 181 | ||
| 280 | --- | 182 | --- |
| @@ -285,7 +187,6 @@ RUN apt update -y && \ | |||
| 285 | |---|---|---| | 187 | |---|---|---| |
| 286 | | 昇腾 910B | Atlas 800T A2、Atlas 900 A2 PoD | ARM64 / x86_64 | | 188 | | 昇腾 910B | Atlas 800T A2、Atlas 900 A2 PoD | ARM64 / x86_64 | |
| 287 | | 昇腾 A3 | Atlas 800T A3 | ARM64 / x86_64 | | 189 | | 昇腾 A3 | Atlas 800T A3 | ARM64 / x86_64 | |
| 288 | -| 昇腾 310P | Atlas 300I Pro、Atlas 300V Pro | ARM64 / x86_64 | | ||
| 289 | 190 | ||
| 290 | --- | 191 | --- |
| 291 | 192 | ||
| @@ -293,16 +194,7 @@ RUN apt update -y && \ | |||
| 293 | 194 | ||
| 294 | | 镜像版本 | 说明 | 备注 | | 195 | | 镜像版本 | 说明 | 备注 | |
| 295 | | - | - | - | | 196 | | - | - | - | |
| 296 | -| 3.0.0 | MindIE 3.0.0 Release版本 | 2026/5/6:首次发布 | | 197 | +| 3.0.0 | MindIE 3.0.0 Release 版本 | 2026/5/6:首次发布 | |
| 297 | -| 3.0.0b2 | MindIE 3.0.0 Beta2版本 | 2026/4/21:首次发布,MindIE Atlas 300IDUO硬件支持动态加载、卸载Lora,支持逐Tensor加载,支持Qwen3-VL 8B/30B-A3B模型 | | ||
| 298 | -| 2.3.1 | MindIE 2.3.1 补丁版本 | 2026/4/16:首次发布,解决DSv3.1 w8a8c8测试BFCL-multiturn精度劣化、请求嵌套层限制10层等问题| | ||
| 299 | -| 2.3.0 | MindIE 2.3.0 商用版本 | 2026/1/18:首次发布| | ||
| 300 | -| 2.2.RC1 | MindIE 2.2 候选版本 | 2025/12/31:ras-restart脚本优化;2025/11/21:首次发布| | ||
| 301 | -| 2.2.T32 | DeepSeek-V3.2性能优化 | 2025/12/05:性能优化,仅供DSv3.2尝鲜,不建议运行其他模型。指导文档 https://www.hiascend.com/forum/thread-0278200283718182227-1-1.html| | ||
| 302 | -| 2.1.RC2 | MindIE 2.1 补丁版本 | 2025/9/21:首次发布| | ||
| 303 | -| 2.1.RC1 | MindIE 2.1 候选版本 | 2025/8/15:transformers版本默认升级至4.51.0 | | ||
| 304 | -| 2.0.RC2 | MindIE 2.0 候选版本 | | | ||
| 305 | -| 1.0.0 | MindIE 1.0 正式版本 | | | ||
| 306 | 198 | ||
| 307 | ## 许可证 | 199 | ## 许可证 |
| 308 | 200 | ||
| @@ -1,60 +0,0 @@ | |||
| 1 | -#!/bin/bash | ||
| 2 | -# Copyright (c) Huawei Technologies Co., Ltd. 2025-2026. All rights reserved. | ||
| 3 | -# MindIE is licensed under Mulan PSL v2. | ||
| 4 | -# You can use this software according to the terms and conditions of the Mulan PSL v2. | ||
| 5 | -# You may obtain a copy of Mulan PSL v2 at: | ||
| 6 | -# http://license.coscl.org.cn/MulanPSL2 | ||
| 7 | -# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, | ||
| 8 | -# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, | ||
| 9 | -# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. | ||
| 10 | -# See the Mulan PSL v2 for more details. | ||
| 11 | - | ||
| 12 | -# Build a MindIE-PyMotor image directly from the local source tree. | ||
| 13 | -# | ||
| 14 | -# Usage (run from the repository root): | ||
| 15 | -# bash docker/build_image.sh | ||
| 16 | -# | ||
| 17 | -# Override defaults via environment variables, e.g.: | ||
| 18 | -# SYSTEM=openEuler24.03 DEVICE=910c VLLM_ASCEND_VERSION=v0.13.0 \ | ||
| 19 | -# bash docker/build_image.sh | ||
| 20 | - | ||
| 21 | -set -euo pipefail | ||
| 22 | - | ||
| 23 | -SYSTEM=${SYSTEM:-Ubuntu24.04} # Ubuntu24.04 / openEuler24.03 | ||
| 24 | -DEVICE=${DEVICE:-910b} # 310p / 910b / 910c | ||
| 25 | -ARCH=${ARCH:-$(uname -m)} # x86_64 / aarch64 | ||
| 26 | -PYMOTOR_VERSION=${PYMOTOR_VERSION:-0.1.0} # MindIE-PyMotor version | ||
| 27 | -VLLM_ASCEND_VERSION=${VLLM_ASCEND_VERSION:-main} # vllm-ascend base image tag prefix | ||
| 28 | -IMAGE_VERSION=${IMAGE_VERSION:-${PYMOTOR_VERSION}} # Tag of the produced image | ||
| 29 | - | ||
| 30 | -case "${DEVICE}" in | ||
| 31 | - 310p) PRODUCT=300I-Duo ;; | ||
| 32 | - 910b) PRODUCT=800I-A2 ;; | ||
| 33 | - 910c) PRODUCT=800I-A3 ;; | ||
| 34 | - *) echo "Unsupported DEVICE: ${DEVICE}" >&2; exit 1 ;; | ||
| 35 | -esac | ||
| 36 | - | ||
| 37 | -case "${SYSTEM}_${DEVICE}" in | ||
| 38 | - Ubuntu24.04_310p) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-310p ;; | ||
| 39 | - openEuler24.03_310p) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-310p-openeuler ;; | ||
| 40 | - Ubuntu24.04_910b) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION} ;; | ||
| 41 | - openEuler24.03_910b) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-openeuler ;; | ||
| 42 | - Ubuntu24.04_910c) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-a3 ;; | ||
| 43 | - openEuler24.03_910c) BASE_IMAGE_TAG=${VLLM_ASCEND_VERSION}-a3-openeuler ;; | ||
| 44 | - *) echo "Unsupported SYSTEM/DEVICE combo: ${SYSTEM}/${DEVICE}" >&2; exit 1 ;; | ||
| 45 | -esac | ||
| 46 | - | ||
| 47 | -IMAGE_TAG="mindie-pymotor:${IMAGE_VERSION}-${PRODUCT}-py3.11-${SYSTEM}-${ARCH}" | ||
| 48 | - | ||
| 49 | -PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd) | ||
| 50 | -cd "${PROJECT_ROOT}" | ||
| 51 | - | ||
| 52 | -echo "Building ${IMAGE_TAG} from quay.nju.edu.cn/ascend/vllm-ascend:${BASE_IMAGE_TAG} ..." | ||
| 53 | -docker build \ | ||
| 54 | - --network=host \ | ||
| 55 | - --build-arg "BASE_IMAGE_TAG=${BASE_IMAGE_TAG}" \ | ||
| 56 | - -t "${IMAGE_TAG}" \ | ||
| 57 | - -f docker/Dockerfile \ | ||
| 58 | - . | ||
| 59 | - | ||
| 60 | -echo "Done. Image tag: ${IMAGE_TAG}" | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0 | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0 | ||
| 9 | +# Source commit: 383d1787ed3fc27aaad2db9cc5506d40c258c279 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 383d1787ed3fc27aaad2db9cc5506d40c258c279; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0 | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0 | ||
| 9 | +# Source commit: 383d1787ed3fc27aaad2db9cc5506d40c258c279 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0-800I-A2-py3.11-Ubuntu24.04-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 383d1787ed3fc27aaad2db9cc5506d40c258c279; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0-800I-A2-py3.11-openEuler24.03-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-openeuler | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0 | ||
| 9 | +# Source commit: 383d1787ed3fc27aaad2db9cc5506d40c258c279 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0-800I-A2-py3.11-openEuler24.03-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 383d1787ed3fc27aaad2db9cc5506d40c258c279; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0-800I-A2-py3.11-openEuler24.03-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-openeuler | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0 | ||
| 9 | +# Source commit: 383d1787ed3fc27aaad2db9cc5506d40c258c279 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0-800I-A2-py3.11-openEuler24.03-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 383d1787ed3fc27aaad2db9cc5506d40c258c279; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-a3 | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0 | ||
| 9 | +# Source commit: 383d1787ed3fc27aaad2db9cc5506d40c258c279 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-a3 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 383d1787ed3fc27aaad2db9cc5506d40c258c279; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-a3 | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0 | ||
| 9 | +# Source commit: 383d1787ed3fc27aaad2db9cc5506d40c258c279 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0-800I-A3-py3.11-Ubuntu24.04-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-a3 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 383d1787ed3fc27aaad2db9cc5506d40c258c279; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0-800I-A3-py3.11-openEuler24.03-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-a3-openeuler | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0 | ||
| 9 | +# Source commit: 383d1787ed3fc27aaad2db9cc5506d40c258c279 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0-800I-A3-py3.11-openEuler24.03-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-a3-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 383d1787ed3fc27aaad2db9cc5506d40c258c279; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0-800I-A3-py3.11-openEuler24.03-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-a3-openeuler | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0 | ||
| 9 | +# Source commit: 383d1787ed3fc27aaad2db9cc5506d40c258c279 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0-800I-A3-py3.11-openEuler24.03-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.18.0-a3-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 383d1787ed3fc27aaad2db9cc5506d40c258c279; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b1-800I-A2-py3.11-Ubuntu24.04-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4 | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 51c1e0819caa55ddef7cf58158fb3043cf9a1c34 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b1-800I-A2-py3.11-Ubuntu24.04-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b1 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 51c1e0819caa55ddef7cf58158fb3043cf9a1c34; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b1-800I-A2-py3.11-Ubuntu24.04-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4 | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 51c1e0819caa55ddef7cf58158fb3043cf9a1c34 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b1-800I-A2-py3.11-Ubuntu24.04-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b1 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 51c1e0819caa55ddef7cf58158fb3043cf9a1c34; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b1-800I-A2-py3.11-openEuler24.03-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-openeuler | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 51c1e0819caa55ddef7cf58158fb3043cf9a1c34 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b1-800I-A2-py3.11-openEuler24.03-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b1 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 51c1e0819caa55ddef7cf58158fb3043cf9a1c34; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b1-800I-A2-py3.11-openEuler24.03-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-openeuler | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 51c1e0819caa55ddef7cf58158fb3043cf9a1c34 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b1-800I-A2-py3.11-openEuler24.03-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b1 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 51c1e0819caa55ddef7cf58158fb3043cf9a1c34; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b1-800I-A3-py3.11-Ubuntu24.04-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-a3 | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 51c1e0819caa55ddef7cf58158fb3043cf9a1c34 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b1-800I-A3-py3.11-Ubuntu24.04-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-a3 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b1 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 51c1e0819caa55ddef7cf58158fb3043cf9a1c34; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b1-800I-A3-py3.11-Ubuntu24.04-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-a3 | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 51c1e0819caa55ddef7cf58158fb3043cf9a1c34 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b1-800I-A3-py3.11-Ubuntu24.04-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-a3 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b1 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 51c1e0819caa55ddef7cf58158fb3043cf9a1c34; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b1-800I-A3-py3.11-openEuler24.03-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-a3-openeuler | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 51c1e0819caa55ddef7cf58158fb3043cf9a1c34 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b1-800I-A3-py3.11-openEuler24.03-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-a3-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b1 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 51c1e0819caa55ddef7cf58158fb3043cf9a1c34; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b1-800I-A3-py3.11-openEuler24.03-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-a3-openeuler | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 51c1e0819caa55ddef7cf58158fb3043cf9a1c34 | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b1-800I-A3-py3.11-openEuler24.03-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:deepseekv4-a3-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b1 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 51c1e0819caa55ddef7cf58158fb3043cf9a1c34; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b2-800I-A2-py3.11-Ubuntu24.04-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1 | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 92905267eb841661c068f63cc575b9f03ee3075e | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b2-800I-A2-py3.11-Ubuntu24.04-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b2 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 92905267eb841661c068f63cc575b9f03ee3075e; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b2-800I-A2-py3.11-Ubuntu24.04-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1 | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 92905267eb841661c068f63cc575b9f03ee3075e | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b2-800I-A2-py3.11-Ubuntu24.04-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b2 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 92905267eb841661c068f63cc575b9f03ee3075e; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b2-800I-A2-py3.11-openEuler24.03-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-openeuler | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 92905267eb841661c068f63cc575b9f03ee3075e | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b2-800I-A2-py3.11-openEuler24.03-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b2 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 92905267eb841661c068f63cc575b9f03ee3075e; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b2-800I-A2-py3.11-openEuler24.03-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-openeuler | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 92905267eb841661c068f63cc575b9f03ee3075e | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b2-800I-A2-py3.11-openEuler24.03-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b2 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 92905267eb841661c068f63cc575b9f03ee3075e; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b2-800I-A3-py3.11-Ubuntu24.04-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-a3 | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 92905267eb841661c068f63cc575b9f03ee3075e | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b2-800I-A3-py3.11-Ubuntu24.04-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-a3 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b2 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 92905267eb841661c068f63cc575b9f03ee3075e; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b2-800I-A3-py3.11-Ubuntu24.04-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-a3 | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 92905267eb841661c068f63cc575b9f03ee3075e | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b2-800I-A3-py3.11-Ubuntu24.04-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-a3 | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b2 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 92905267eb841661c068f63cc575b9f03ee3075e; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b2-800I-A3-py3.11-openEuler24.03-lts-aarch64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-a3-openeuler | ||
| 6 | +# Target platform: linux/arm64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 92905267eb841661c068f63cc575b9f03ee3075e | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/arm64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b2-800I-A3-py3.11-openEuler24.03-lts-aarch64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-a3-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b2 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 92905267eb841661c068f63cc575b9f03ee3075e; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||
| @@ -0,0 +1,109 @@ | |||
| 1 | +# syntax=docker/dockerfile:1.4 | ||
| 2 | +# | ||
| 3 | +# Self-contained Dockerfile for mindie-motor-vllm:3.0.0b2-800I-A3-py3.11-openEuler24.03-lts-x86_64 | ||
| 4 | +# | ||
| 5 | +# Base image: quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-a3-openeuler | ||
| 6 | +# Target platform: linux/amd64 | ||
| 7 | +# Source repo: https://gitcode.com/Ascend/MindIE-PyMotor.git | ||
| 8 | +# Source branch: v3.0.0.beta.1 | ||
| 9 | +# Source commit: 92905267eb841661c068f63cc575b9f03ee3075e | ||
| 10 | +# | ||
| 11 | +# Build (no local source required): | ||
| 12 | +# docker build --network=host \ | ||
| 13 | +# --platform=linux/amd64 \ | ||
| 14 | +# -t mindie-motor-vllm:3.0.0b2-800I-A3-py3.11-openEuler24.03-lts-x86_64 \ | ||
| 15 | +# -f Dockerfile \ | ||
| 16 | +# . | ||
| 17 | + | ||
| 18 | +FROM quay.nju.edu.cn/ascend/vllm-ascend:v0.20.2rc1-a3-openeuler | ||
| 19 | + | ||
| 20 | +ARG IMAGE_VERSION=3.0.0b2 | ||
| 21 | +ARG PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple | ||
| 22 | +ARG PIP_TRUSTED_HOST=repo.huaweicloud.com | ||
| 23 | + | ||
| 24 | +ENV PIP_INDEX_URL=${PIP_INDEX_URL} \ | ||
| 25 | + PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} \ | ||
| 26 | + PIP_DISABLE_PIP_VERSION_CHECK=1 \ | ||
| 27 | + PYTHONDONTWRITEBYTECODE=1 | ||
| 28 | + | ||
| 29 | +RUN set -eux; \ | ||
| 30 | + if ! command -v git >/dev/null 2>&1; then \ | ||
| 31 | + if command -v apt-get >/dev/null 2>&1; then \ | ||
| 32 | + apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git; \ | ||
| 33 | + elif command -v yum >/dev/null 2>&1; then \ | ||
| 34 | + yum install -y git; \ | ||
| 35 | + elif command -v dnf >/dev/null 2>&1; then \ | ||
| 36 | + dnf install -y git; \ | ||
| 37 | + else \ | ||
| 38 | + echo "git not found and no supported package manager" >&2; exit 1; \ | ||
| 39 | + fi; \ | ||
| 40 | + fi; \ | ||
| 41 | + git clone --branch v3.0.0.beta.1 https://gitcode.com/Ascend/MindIE-PyMotor.git /opt/MindIE-PyMotor; \ | ||
| 42 | + cd /opt/MindIE-PyMotor; \ | ||
| 43 | + git checkout 92905267eb841661c068f63cc575b9f03ee3075e; \ | ||
| 44 | + rm -rf .git | ||
| 45 | + | ||
| 46 | +WORKDIR /opt/MindIE-PyMotor | ||
| 47 | + | ||
| 48 | +RUN set -eux; \ | ||
| 49 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 50 | + bash build.sh; \ | ||
| 51 | + pip install --no-cache-dir --force-reinstall dist/motor*.whl; \ | ||
| 52 | + rm -rf build/ motor.egg-info/ dist/ | ||
| 53 | + | ||
| 54 | +RUN set -eux; \ | ||
| 55 | + cd examples/features/observability; \ | ||
| 56 | + pip install --no-cache-dir -r requirements.txt; \ | ||
| 57 | + bash build.sh; \ | ||
| 58 | + pip install --no-cache-dir --force-reinstall dist/ccae_reporter-*.whl; \ | ||
| 59 | + rm -rf build/ dist/ ccae_reporter.egg-info/ | ||
| 60 | + | ||
| 61 | +RUN set -eux; \ | ||
| 62 | + mkdir -p /tmp/motor; \ | ||
| 63 | + mv /opt/MindIE-PyMotor/examples /tmp/motor/; \ | ||
| 64 | + ls -l /tmp/motor/examples; \ | ||
| 65 | + rm -rf /tmp/motor/examples/features/fault_tolerance/ras_monitor; \ | ||
| 66 | + ls -l /tmp/motor/examples/features/fault_tolerance; \ | ||
| 67 | + find /tmp -mindepth 1 -maxdepth 1 ! -name "motor" -exec rm -rf {} + | ||
| 68 | + | ||
| 69 | +WORKDIR /workspace | ||
| 70 | + | ||
| 71 | +RUN printf '%s\n' \ | ||
| 72 | + "Version: ${IMAGE_VERSION}" \ | ||
| 73 | + "Container image Copyright (c) 2026, Huawei Technologies Co., Ltd. All rights reserved." \ | ||
| 74 | + "This container image and its contents are governed by the Huawei Container License Agreement (\"License\"). By pulling and using the container, you accept the terms and conditions of this License." \ | ||
| 75 | + "A copy of this License is made available in this container at: https://www.hiascend.com/en/legal/ascendhub-download" \ | ||
| 76 | + "Note: You agree and undertake that when using Huawei or third-party software in this image, you will comply with the license agreement of the corresponding Huawei or third-party software." \ | ||
| 77 | + > /workspace/agreement.txt | ||
| 78 | + | ||
| 79 | +RUN <<'EOF' install -m 755 /dev/stdin /usr/local/bin/docker-entrypoint.sh | ||
| 80 | +#!/bin/bash | ||
| 81 | +set -e | ||
| 82 | + | ||
| 83 | +# Ascend env scripts exist only inside the runtime image; use source=/dev/null | ||
| 84 | +# so ShellCheck does not require those paths at lint time. | ||
| 85 | +load_env_script() { | ||
| 86 | + local script="$1" | ||
| 87 | + if [ -f "$script" ]; then | ||
| 88 | + # shellcheck source=/dev/null | ||
| 89 | + . "$script" | ||
| 90 | + fi | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +cat /workspace/agreement.txt | ||
| 94 | + | ||
| 95 | +load_env_script /usr/local/Ascend/ascend-toolkit/set_env.sh | ||
| 96 | + | ||
| 97 | +shopt -s nullglob | ||
| 98 | +for set_env in /usr/local/Ascend/cann-*/share/info/ascendnpu-ir/bin/set_env.sh; do | ||
| 99 | + load_env_script "$set_env" | ||
| 100 | + break | ||
| 101 | +done | ||
| 102 | + | ||
| 103 | +load_env_script /usr/local/Ascend/nnal/atb/set_env.sh | ||
| 104 | + | ||
| 105 | +exec "$@" | ||
| 106 | +EOF | ||
| 107 | + | ||
| 108 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
| 109 | +CMD ["/bin/bash"] | ||