Skip to content

Commit a2a4c99

Browse files
Merge pull request #2005 from ArmDeveloperEcosystem/main
Production update
2 parents a780fda + 1f5bb56 commit a2a4c99

File tree

55 files changed

+1401
-160
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1401
-160
lines changed

.wordlist.txt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4184,4 +4184,20 @@ subgenre
41844184
submodule
41854185
subword
41864186
techcrunch
4187-
transformative
4187+
transformative
4188+
Aude
4189+
Gian
4190+
Iodice
4191+
SmolLM
4192+
VME
4193+
Vuilliomenet
4194+
cpus
4195+
fLO
4196+
invalidations
4197+
libtensorflowlite
4198+
macos
4199+
multithreaded
4200+
Wix's
4201+
ngrok's
4202+
qs
4203+
qu

assets/contributors.csv

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,5 +85,9 @@ Yiyang Fan,Arm,,,,
8585
Julien Jayat,Arm,,,,
8686
Geremy Cohen,Arm,geremyCohen,geremyinanutshell,,
8787
Barbara Corriero,Arm,,,,
88-
Nina Drozd,Arm,,ninadrozd,,
88+
Nina Drozd,Arm,NinaARM,ninadrozd,,
8989
Jun He,Arm,JunHe77,jun-he-91969822,,
90+
Gian Marco Iodice,Arm,,,,
91+
Aude Vuilliomenet,Arm,,,,
92+
Andrew Kilroy,Arm,,,,
93+
Peter Harris,Arm,,,,

content/learning-paths/cross-platform/mcp-ai-agent/intro-to-mcp-uv.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ The Model Context Protocol (MCP) is an open specification designed to connect La
1717

1818
- **Security by design:** MCP encourages running servers inside your own infrastructure, so sensitive data stays within your infrastructure unless explicitly shared.
1919

20-
- **Cross-ecosystem momentum:** recent roll-outs from an official C# SDK to Wixs production MCP server and Microsoft’s Azure support show the MCP spec is gathering real-world traction.
20+
- **Cross-ecosystem momentum:** recent roll-outs from an official C# SDK to Wix's production MCP server and Microsoft’s Azure support show the MCP spec is gathering real-world traction.
2121

2222
## What is uv?
2323

content/learning-paths/cross-platform/mcp-ai-agent/mcp-server.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
115115
116116
You will now use ngrok to expose your locally running MCP server to the public internet over HTTPS.
117117
118-
1. Add ngroks repo to the apt package manager and install:
118+
1. Add ngrok's repo to the apt package manager and install:
119119
```bash
120120
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
121121
| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \

content/learning-paths/embedded-and-microcontrollers/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ tools_software_languages_filter:
6161
- GitHub: 3
6262
- GitLab: 1
6363
- Himax SDK: 1
64+
- Hugging Face: 3
6465
- IP Explorer: 4
6566
- Jupyter Notebook: 1
6667
- K3s: 1

content/learning-paths/embedded-and-microcontrollers/llama-python-cpu/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ tools_software_languages:
2828
- GenAI
2929
- Raspberry Pi
3030
- Python
31-
31+
- Hugging Face
3232

3333
further_reading:
3434
- resource:

content/learning-paths/embedded-and-microcontrollers/rpi-llama3/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ tools_software_languages:
3131
- LLM
3232
- GenAI
3333
- Raspberry Pi
34+
- Hugging Face
3435

3536

3637

content/learning-paths/embedded-and-microcontrollers/yolo-on-himax/_index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ armips:
3232
tools_software_languages:
3333
- Himax SDK
3434
- Python
35+
- Hugging Face
36+
3537
operatingsystems:
3638
- Linux
3739
- macOS

content/learning-paths/laptops-and-desktops/_index.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ operatingsystems_filter:
1010
- Android: 2
1111
- ChromeOS: 1
1212
- Linux: 31
13-
- macOS: 7
14-
- Windows: 43
13+
- macOS: 8
14+
- Windows: 44
1515
subjects_filter:
1616
- CI-CD: 5
17-
- Containers and Virtualization: 5
17+
- Containers and Virtualization: 6
1818
- Migration to Arm: 28
1919
- ML: 2
2020
- Performance and Architecture: 25
@@ -39,7 +39,7 @@ tools_software_languages_filter:
3939
- Coding: 16
4040
- CSS: 1
4141
- Daytona: 1
42-
- Docker: 4
42+
- Docker: 5
4343
- GCC: 10
4444
- Git: 1
4545
- GitHub: 3
@@ -52,6 +52,7 @@ tools_software_languages_filter:
5252
- JavaScript: 2
5353
- Kubernetes: 1
5454
- Linux: 1
55+
- LLM: 1
5556
- LLVM: 1
5657
- llvm-mca: 1
5758
- MSBuild: 1
@@ -62,7 +63,7 @@ tools_software_languages_filter:
6263
- ONNX Runtime: 1
6364
- OpenCV: 1
6465
- perf: 4
65-
- Python: 5
66+
- Python: 6
6667
- Qt: 2
6768
- Remote.It: 1
6869
- RME: 1
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: Learn how to use Docker Model Runner in AI applications
3+
4+
draft: true
5+
cascade:
6+
draft: true
7+
8+
minutes_to_complete: 45
9+
10+
who_is_this_for: This is for software developers and AI enthusiasts who want to run AI models using Docker Model Runner.
11+
12+
learning_objectives:
13+
- Run AI models locally using Docker Model Runner.
14+
- Easily build containerized applications with LLMs.
15+
16+
prerequisites:
17+
- A computer with at least 16GB of RAM (recommended) and Docker Desktop installed (version 4.40 or later).
18+
- Basic understanding of Docker.
19+
- Familiarity with Large Language Model (LLM) concepts.
20+
21+
author: Jason Andrews
22+
23+
### Tags
24+
skilllevels: Introductory
25+
subjects: Containers and Virtualization
26+
armips:
27+
- Neoverse
28+
- Cortex-A
29+
operatingsystems:
30+
- Windows
31+
- macOS
32+
tools_software_languages:
33+
- Docker
34+
- Python
35+
- LLM
36+
37+
further_reading:
38+
- resource:
39+
title: Docker Model Runner Documentation
40+
link: https://docs.docker.com/model-runner/
41+
type: documentation
42+
- resource:
43+
title: Introducing Docker Model Runner
44+
link: https://www.docker.com/blog/introducing-docker-model-runner/
45+
type: blog
46+
47+
### FIXED, DO NOT MODIFY
48+
# ================================================================================
49+
weight: 1 # _index.md always has weight of 1 to order correctly
50+
layout: "learningpathall" # All files under learning paths have this same wrapper
51+
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
52+
---
53+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
# ================================================================================
3+
# FIXED, DO NOT MODIFY THIS FILE
4+
# ================================================================================
5+
weight: 21 # Set to always be larger than the content in this path to be at the end of the navigation.
6+
title: "Next Steps" # Always the same, html page title.
7+
layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing.
8+
---
Loading
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
---
2+
title: "Run a containerized AI chat app with Docker Compose"
3+
weight: 3
4+
layout: "learningpathall"
5+
---
6+
7+
Docker Compose makes it easy to run multi-container applications. Docker Compose can also include AI models in your project.
8+
9+
In this section, you'll learn how to use Docker Compose to deploy a web-based AI chat application that uses Docker Model Runner as the backend for AI inference.
10+
11+
## Clone the example project
12+
13+
The example project, named [docker-model-runner-chat](https://github.com/jasonrandrews/docker-model-runner-chat) is available on GitHub. It provides a simple web interface to interact with local AI models such as Llama 3.2 or Gemma 3.
14+
15+
First, clone the example repository:
16+
17+
```console
18+
git clone https://github.com/jasonrandrews/docker-model-runner-chat.git
19+
cd docker-model-runner-chat
20+
```
21+
22+
## Review the Docker Compose file
23+
24+
The `compose.yaml` file defines how the application is deployed using Docker Compose.
25+
26+
It sets up two services:
27+
28+
- **ai-chat**: A Flask-based web application that provides the chat user interface. It is built from the local directory, exposes port 5000 for browser access, mounts the project directory as a volume for live code updates, loads environment variables from `vars.env`, and waits for the `ai-runner` service to be ready before starting.
29+
- **ai-runner**: This service uses the Docker Model Runner provider to run the selected AI model (for example, `ai/gemma3`). The configuration under `provider` tells Docker to use the model runner extension and specifies which model to load.
30+
31+
The setup allows the web app to communicate with the model runner service as if it were an OpenAI-compatible API, making it easy to swap models or update endpoints by changing environment variables or compose options.
32+
33+
Review the `compose.yaml` file to see the two services.
34+
35+
```yaml
36+
services:
37+
ai-chat:
38+
build:
39+
context: .
40+
ports:
41+
- "5000:5000"
42+
volumes:
43+
- ./:/app
44+
env_file:
45+
- vars.env
46+
depends_on:
47+
- ai-runner
48+
ai-runner:
49+
provider:
50+
type: model
51+
options:
52+
model: ai/gemma3
53+
```
54+
55+
## Start the application
56+
57+
From the project directory, start the app with:
58+
59+
```console
60+
docker compose up --build
61+
```
62+
63+
Docker Compose will build the web app image and start both services.
64+
65+
## Access the chat interface
66+
67+
Open your browser and copy and paste the local URL below:
68+
69+
```console
70+
http://localhost:5000
71+
```
72+
73+
You can now chat with the AI model using the web interface. Enter your prompt and view the response in real time.
74+
75+
![Compose #center](compose-app.png)
76+
77+
## Configuration
78+
79+
You can change the AI model or endpoint by editing the `vars.env` file before starting the containers. The file contains environment variables used by the web application:
80+
81+
- `BASE_URL`: The base URL for the AI model API. By default, it is set to `http://model-runner.docker.internal/engines/v1/`, which allows the web app to communicate with the Docker Model Runner service. This is the default endpoint setup by Docker to access the model.
82+
- `MODEL`: The AI model to use (for example, `ai/gemma3` or `ai/llama3.2`).
83+
84+
The `vars.env` file is shown below.
85+
86+
```console
87+
BASE_URL=http://model-runner.docker.internal/engines/v1/
88+
MODEL=ai/gemma3
89+
```
90+
91+
To use a different model, change the `MODEL` value. For example:
92+
93+
```console
94+
MODEL=ai/llama3.2
95+
```
96+
97+
Make sure to change the model in the `compose.yaml` file also.
98+
99+
You can also change the `temperature` and `max_tokens` values in `app.py` to further customize the application.
100+
101+
## Stop the application
102+
103+
To stop the services, press `Ctrl+C` in the terminal.
104+
105+
You can also run the command below in another terminal to stop the services.
106+
107+
```console
108+
docker compose down
109+
```
110+
111+
## Troubleshooting
112+
113+
Use the steps below if you have any issues running the application:
114+
115+
- Ensure Docker and Docker Compose are installed and running
116+
- Make sure port 5000 is not in use by another application
117+
- Check logs with:
118+
119+
```console
120+
docker compose logs
121+
```
122+
123+
In this section, you learned how to use Docker Compose to run a containerized AI chat application with a web interface and local model inference from Docker Model Runner.
Loading

0 commit comments

Comments
 (0)