我是一名 PHP 程序员。最近对 go 语言有了兴趣。所以我准备从身边的一个项目入手,实践并学习一下 go 语言。在上一篇文章中对这个要重构的小项目做了比较详细的介绍。今天计划在自己的电脑上搭建一个可以运行 go 语言的开发环境。
几年前开始,我已经尝试用 Docker 来搭建我的开发环境。所以目前我开发环境所依赖的所有功能都是运行在 Docker 之上。比如 PHP,MySQL, Redis,Nginx 等。这次我将同样用 Docker 来搭建我的 go 语言环境。另外我的开发系统为 Ubuntu。
咱们直接开始,首先是为这个小项目创建项目目录:
mkdir -p ~/Projects/codebook
coodbook,很直白的名字。进入项目目录:
cd ~/Projects/codebook
然后尝试拉取 go 语言的镜像:
docker pull golang
镜像拉取成功后,验证一下镜像是否工作正常:
docker run --rm -it golang go version
看到输出了 go 语言的版本信息,我就放心了。关于 docker
命令后的参数稍微解释下,--rm
参数是表示在执行完成后删除这个镜像产生的容器,-it
是使用交互式方式执行这个镜像中的命令。这些是 Docker 命令的参数,跟 go 语言没有关系,不用在意。
理论上到此开发环境就算是搭建好了,这就是几年前我为啥非要把开发环境搬到 Docker 环境的原因:简单高效,不污染主系统环境。接下来将继续尝试写一个 go 语言的代码体验一下经单的 "Hello, World"。先创建一个 hello.go
文件,输入以下代码:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, world.")
}
如何在 Docker 构建的开发环境中执行代码文件是有套路的,首先需要知道这个镜像它的默认工作目录,这个可以借助镜像中的 pwd
命令:
docker run --rm -it golang pwd
输出结果是在 /go 目录,接下来就只需要运行这个镜像时,把当前目录挂载到容器中的 /go
目录,执行如下代码:
docker run --rm -it -v $PWD:/go golang go run hello.go
很好,正常输出了“Hello World“。再尝试以编译的方式执行代码:
docker run --rm -it -v $PWD:/go golang go build hello.go
没有任何输出。用 ls
命令来查看下项目目录,可以看到多了一个 hello 的可执行文件。
直接执行这个可执行文件,同样输出了 "Hello, World":
至此我的 go 语言开发环境就算准备好了。下一篇我将开始设计并创建这个小项目的前端界面,这是我自己的一个习惯,先把自己想的东西画出来,从界面入手,把功能和流程再过一便,确保自己不会做一些多余的事情。敬请关注,我们下一篇见。
有疑问加站长微信联系(非本文作者)