使用Docker Desktop快速搭建Go开发环境
编辑于 2021-10-13 14:48:56 阅读 5369
前言
想象一下,无论什么语言,什么项目,只要在项目根目录添加一个文件,这个项目就能运行起来,是不是很神奇?
是的,Docker Desktop就可以做这个事,并且使用VS Code连接到docker容器,实现容器内编程,体验完全不输本地环境。
Docker Desktop理论上支持所有语言环境,本人亲测 多容器的go环境(go+nginx+mysql+redis)
sample介绍
确保您已经安装了工具! 要开始使用Dev Environments,你需要Git, Visual Studio Code和Visual Studio Code远程容器扩展
如上图,1是单容器的go环境(只有go)
项目地址:https://github.com/dockersamples/single-dev-env
用到的镜像:https://hub.docker.com/_/docker/dev-environments-go
2是多容器的go环境(go+nginx+mysql)
项目地址:https://github.com/dockersamples/compose-dev-env
基于`https://github.com/docker/awesome-compose/tree/master/nginx-golang-mysql`修改而来
自定义开发环境
单容器
如上 single-dev-env
,根目录下有一个.docker
目录,里面有一个config.json
cat .docker/config.json
{
"image": "docker/dev-environments-go:stable-1"
}
你可以把镜像换成如下镜像
- docker/dev-environments-javascript
- docker/dev-environments-python
- docker/dev-environments-java
- docker/dev-environments-ruby
- docker/dev-environments-dart
也可以自定义:比如php,在一个容器内安装php,mysql,nginx,redis。。。,这个不推荐
多容器
如上 compose-dev-env
,根目录下有一个.docker
目录,里面有一个docker-compose.yaml
cat .docker/docker-compose.yaml
version: "3.7"
...
你可以修改这个docker-compose.yaml
文件来实现多容器的开发环境,我上传了一个多容器的go环境(go+nginx+mysql+redis),欢迎star
最终效果
如上图,VSCode成功连接到远程docker容器,体验完全不输本地环境。这种本地无需安装go环境,编辑器中却可以正常运行go代码,GoLand好像做不到