本文主要是记录我搭建go playground的步骤。
1、安装docker
如果你使用的Ubuntu,docker的安装步骤可以参见这里,这是我之前写的在Ubuntu18.04下安装fabric,其中有docker的安装步骤,这里就不再赘述了。
CentOS下安装docker的,可以参见这里。与Ubuntu不同的是,CentOS需要自己手动安装docker-compose,可以从github.com下载对应系统的compose。
2、安装runsc
|
wget https://storage.googleapis.com/gvisor/releases/nightly/latest/runsc |
|
chmod +x runsc |
|
sudo mv runsc /usr/local/bin |
配置docker使用runsc,需要在/etc/docker/daemon.json
中添加如下内容:
|
{ |
|
"runtimes": { |
|
"runsc": { |
|
"path": "/usr/local/bin/runsc" |
|
} |
|
} |
|
} |
之后重启docker:
|
sudo systemctl restart docker |
3、安装playground
这里使用的golang官方提供的playground,可以从这里下载。
按照README.md中的指导就可以在本地构建出可运行的playground。
Tips:因为构建dock二镜像用到debain使用的是官方的源,国内访问速度很慢,修改Dockerfile使用国内的源替换 Tips:国内环境的话,还需要修改镜像中的GOPROXY,使用
GOPROXY=https://goproxy.io,direct
代替ENV GOPROXY=https://proxy.golang.org
,否则在执行go mod download
时会失败。
4、启动playground
compose文件示例如下:
|
version: '2' |
|
services: |
|
sandbox_dev: |
|
image: golang/playground-sandbox:latest |
|
networks: |
|
- sandnet |
|
command: sh -c '/usr/local/bin/play-sandbox' |
|
ports: |
|
- 8080:80 |
|
volumes: |
|
- /var/run/docker.sock:/var/run/docker.sock |
|
|
|
play_dev: |
|
image: golang/playground:latest |
|
environment: |
|
- SANDBOX_BACKEND_URL=http://playground_sandbox_dev_1/run |
|
networks: |
|
- sandnet |
|
command: sh -c '/app/playground' |
|
ports: |
|
- 8081:8080 |
|
volumes: |
|
- /var/run/docker.sock:/var/run/docker.sock |
|
|
|
networks: |
|
sandnet: |
启动:
|
docker-compose -f docker-compose.yaml up |
附图:
浏览器访问:http://localhost:8081