使用Docker Desktop快速搭建Go开发环境

前言

想象一下,无论什么语言,什么项目,只要在项目根目录添加一个文件,这个项目就能运行起来,是不是很神奇?

是的,Docker Desktop就可以做这个事的,并且使用VS Code连接到docker容器,实现容器内编程,体验完全不输本地环境。

Docker Desktop理论上支持所有语言环境,本人亲测 多容器的go环境(go+nginx+mysql+redis)

sample介绍

确保您已经安装了工具! 要开始使用Dev Environments,你需要Git, Visual Studio Code和Visual Studio Code远程容器扩展

WX202110152125562x.png

如上图,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

最终效果

ee.jpg

aaa1.jpg

如上图,VSCode成功连接到远程docker容器,体验完全不输本地环境。这种本地无需安装go环境,编辑器中却可以正常运行go代码,GoLand好像做不到

参考

https://docs.docker.com/desktop/dev-environments/

感谢阅读这篇文章,如果你喜欢,或者遇到了问题,可以关注我的公众号