Docker images for ICP canister development, designed for use with GitHub Codespaces and local dev containers.
For Motoko canister development.
| Tool | Version |
|---|---|
| icp-cli | 0.2.7 |
| ic-wasm | 0.9.11 |
| mops | 2.13.2 |
| moc | installed per-project via mops install |
| Node.js | 24.15.0 |
| pnpm | 11.4.0 |
docker pull ghcr.io/dfinity/icp-dev-env-motoko:latest # always current
docker pull ghcr.io/dfinity/icp-dev-env-motoko:1.0.0 # pinnedFor Rust canister development.
| Tool | Version |
|---|---|
| icp-cli | 0.2.7 |
| ic-wasm | 0.9.11 |
| Rust | 1.95.0 |
| wasm32-unknown-unknown target | — |
| Node.js | 24.15.0 |
| pnpm | 11.4.0 |
docker pull ghcr.io/dfinity/icp-dev-env-rust:latest # always current
docker pull ghcr.io/dfinity/icp-dev-env-rust:1.0.0 # pinnedCombined Motoko and Rust development environment. Use this when your project includes both Motoko and Rust canisters.
| Tool | Version |
|---|---|
| icp-cli | 0.2.7 |
| ic-wasm | 0.9.11 |
| mops | 2.13.2 |
| moc | installed per-project via mops install |
| Rust | 1.95.0 |
| wasm32-unknown-unknown target | — |
| Node.js | 24.15.0 |
| pnpm | 11.4.0 |
docker pull ghcr.io/dfinity/icp-dev-env-all:latest # always current
docker pull ghcr.io/dfinity/icp-dev-env-all:1.0.0 # pinnedReference the image in your .devcontainer/devcontainer.json:
{
"name": "My Example (Motoko)",
"image": "ghcr.io/dfinity/icp-dev-env-motoko:latest",
"workspaceFolder": "/workspaces/examples/motoko/my-example",
"forwardPorts": [8000],
"portsAttributes": {
"8000": { "label": "ICP local network", "onAutoForward": "ignore" }
},
"postCreateCommand": "mops install",
"postStartCommand": "icp network start -d",
"customizations": {
"vscode": {
"extensions": ["dfinity-foundation.vscode-motoko", "stateful.runme"]
}
}
}See dfinity/examples for full usage across all examples.
Tool versions are pinned via ARG in each Dockerfile. To update a version:
- Update the relevant
ARGin the affected Dockerfile(s) (motoko/Dockerfile,rust/Dockerfile,all/Dockerfile) - Create a new GitHub Release with a semver tag (e.g.
v1.0.1) — the CI pipeline builds and pushes all images to GHCR
Images are built for linux/amd64 and linux/arm64.
Note: The release must be published as non-draft to trigger the CI pipeline.