# redspot docker 在 redspotv0.4 中,我们添加了使用 docker 编译合约支持。这将能保证在不同平台下编译生成的 wasm 都是一致的。 redspot 将使用 [redspot/contract](https://github.com/patractlabs/docker-images/tree/master/contract) 这个 docker image 进行编译和运行测试网。它是在 paritytech 提供的 [contract docker image](https://github.com/paritytech/scripts/blob/master/dockerfiles/contracts-ci-linux/Dockerfile) 的基础上进行修改的。 目前只支持 ink 合约 docker 编译,配置如下: ```javascript= ... export default { ... contract: { ink: { toolchain: "nightly", docker: true, sources: ["contracts/**/*"], }, }, ... docker: { sudo: false, }, ... }; ``` 在运行编译命令之前,请确保本机已安装 docker。运行命令 ``` $ npx redspot compile ``` > ⚠️注意 > 当使用docker编译时,可能受网络环境影响(比如中国大陆需要vpn代理),会导致编译时间过长, > 如果中途使用 ctrl+c 退出当前编译命令,docker容器并不会自动停止删除。 现在会默认使用 docker 编译。如果想更改默认行为,请添加 `--docker false` 参数: ``` $ npx redspot compile --docker false ``` 注意如果遇到权限错误,请将 `redspot.config` 文件中的 `docker.sudo` 改为 true。这样将会使用 sudo 运行 docker。 同样的,也可以使用 docker 运行一个测试网。当前内置了 canvas 测试网,在未来我们会内置更多的测试网以供用户选择。 目前运行测试网的命令是: ``` $ npx redspot testnet ``` 实际上,它的作用是仅仅只是运行命令: ``` $ docker run -p 9944:9944 --rm redspot/contract /bin/bash -c "canvas --tmp --dev --ws-port=9944 --ws-external" ``` 如果想要修改默认的运行命令,可以添加 command 参数: ``` $ npx redspot testnet --command 'docker run -p 9945:9944 --rm redspot/contract /bin/bash -c "canvas --tmp --dev --ws-port=9944 --ws-external"' ``` 我们会推荐和引导用户优先使用 docker, 因为这样可以专注合约的编写,免去很多环境配置和启动节点的麻烦。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up