已合并
[docker]: 修改dockerfile提供方式,改为具体独立的Dockerfile #271
[docker]: 修改dockerfile提供方式,改为具体独立的Dockerfile #271
已合并
LinWei100创建于 6月10日
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-Motor18## MindIE-Motor
19 19 
20-Provides oneclick PD-separated deployment, flexibly adapts to multiple inference engines (vLLM, SGLang) through a cloudnative plugin architecture, and combines highperformance scheduling with load balancing capabilities to build highly available, scalable largescale 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
28Official pre-built image tags follow this format:28Official pre-built image tags follow this format:
29 29 
30```text30```text
31-<MotorVersion>-vllm-ascend-<vllm-ascend-version>-<ProductSeries>-<PythonVersion>-<OperatingSystem>-lts31+<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 Address42+### 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```text46```text
47-quay.io/ascend/mindie-motor47+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-```bash61+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 Image76### 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```bash80```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 variables83+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.sh85+ -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- ```bash94+| Image Version | Repository | Branch | Commit |
188- pip install -r requirements.txt95+|---|---|---|---|
189- bash build.sh96+| `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 from98+The build process:
194- `examples/features/observability/`, which lets the image integrate with
195- the CCAE cluster autonomous engine:
196 99 
197- ```bash100+1. Pulls the matching vllm-ascend base image.
198- cd examples/features/observability101+2. Clones the pinned MindIE-PyMotor source into `/opt/MindIE-PyMotor`.
199- pip install -r requirements.txt102+3. Installs dependencies, compiles, and installs the `motor` wheel.
200- bash build.sh103+4. Builds and installs the `ccae_reporter` observability component.
201- pip install --force-reinstall dist/ccae_reporter-*.whl104+5. Generates the entrypoint script and license agreement inline within the Dockerfile.
202- ```
203 105 
204### Run MindIE-Motor Container106### Run MindIE-Motor Container
205 107 
206-Make sure Atlas drivers are installed on the host and `/dev/davinci*` device nodes108+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 command110+#### 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```bash112```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 
217docker run --rm -it \115docker 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 service128+#### Start Inference Service
231 129 
232-A full deployment requires `boot.sh`, `user_config.json`, and related files mounted130+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```bash132```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 
241docker run -u root --rm --name mindie-motor \136docker 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 
264Common parameters:159Common 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 Extend173+### Extend the Image
279 174 
280```bash175```bash
281-# Use MindIE-PyMotor image as base, add user software176+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 
284RUN apt update -y && \178RUN apt update -y && \
285 apt install gcc ...179 apt install gcc ...
286- 
287-...
288```180```
289 181 
290---182---
291 183 
292## Supported Hardware184## 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 Notes193## 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## License199## 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, preinstalled 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```text30```text
31-<Motor版本>-vllm-ascend-<vllm-ascend版本>-<产品系列>-<python版本>-<操作系统>-lts31+<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```text46```text
47-quay.io/ascend/mindie-motor47+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-```bash61+每个 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```bash80```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.sh85+ -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- ```bash104+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```bash112```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 
210docker run --rm -it \115docker 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```bash132```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 
231docker run -u root --rm --name mindie-motor \136docker 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```bash175```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 
274RUN apt update -y && \178RUN 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"]