https://github.com/dfinity/icp-dev-env
Docker images for canister development on ICP.
https://github.com/dfinity/icp-dev-env
Last synced: 9 days ago
JSON representation
Docker images for canister development on ICP.
- Host: GitHub
- URL: https://github.com/dfinity/icp-dev-env
- Owner: dfinity
- License: other
- Created: 2024-01-19T10:53:54.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-06-09T15:25:44.000Z (11 days ago)
- Last Synced: 2026-06-09T17:22:17.695Z (11 days ago)
- Language: Dockerfile
- Homepage:
- Size: 44.9 KB
- Stars: 13
- Watchers: 5
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# ICP Developer Environment
Docker images for ICP canister development, designed for use with GitHub Codespaces and local dev containers.
## Images
### `icp-dev-env-motoko`
For Motoko canister development.
| Tool | Version |
|---|---|
| [icp-cli](https://cli.internetcomputer.org) | 0.3.2 |
| [ic-wasm](https://github.com/dfinity/ic-wasm) | 0.9.11 |
| [mops](https://mops.one) | 2.13.2 |
| moc | installed per-project via `mops install` |
| Node.js | 24.15.0 |
| pnpm | 11.4.0 |
```bash
docker pull ghcr.io/dfinity/icp-dev-env-motoko:latest # always current
docker pull ghcr.io/dfinity/icp-dev-env-motoko:0.3.2 # pinned
```
### `icp-dev-env-rust`
For Rust canister development.
| Tool | Version |
|---|---|
| [icp-cli](https://cli.internetcomputer.org) | 0.3.2 |
| [ic-wasm](https://github.com/dfinity/ic-wasm) | 0.9.11 |
| [candid-extractor](https://github.com/dfinity/cdk-rs) | 0.1.4 |
| Rust | 1.95.0 |
| wasm32-unknown-unknown target | — |
| Node.js | 24.15.0 |
| pnpm | 11.4.0 |
```bash
docker pull ghcr.io/dfinity/icp-dev-env-rust:latest # always current
docker pull ghcr.io/dfinity/icp-dev-env-rust:0.3.2 # pinned
```
### `icp-dev-env-all`
Combined Motoko and Rust development environment. Use this when your project includes both Motoko and Rust canisters.
| Tool | Version |
|---|---|
| [icp-cli](https://cli.internetcomputer.org) | 0.3.2 |
| [ic-wasm](https://github.com/dfinity/ic-wasm) | 0.9.11 |
| [candid-extractor](https://github.com/dfinity/cdk-rs) | 0.1.4 |
| [mops](https://mops.one) | 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 |
```bash
docker pull ghcr.io/dfinity/icp-dev-env-all:latest # always current
docker pull ghcr.io/dfinity/icp-dev-env-all:0.3.2 # pinned
```
## Usage
Reference the image in your `.devcontainer/devcontainer.json`:
```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](https://github.com/dfinity/examples) for full usage across all examples.
## Releasing
Tool versions are pinned via `ARG` in each Dockerfile. To update a version:
1. Update the relevant `ARG` in the affected Dockerfile(s) (`motoko/Dockerfile`, `rust/Dockerfile`, `all/Dockerfile`)
2. 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.