1

我是一名 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

image

看到输出了 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

image

输出结果是在 /go 目录,接下来就只需要运行这个镜像时,把当前目录挂载到容器中的 /go 目录,执行如下代码:

docker run --rm -it -v $PWD:/go golang go run hello.go

image

很好,正常输出了“Hello World“。再尝试以编译的方式执行代码:

docker run --rm -it -v $PWD:/go golang go build hello.go

没有任何输出。用 ls 命令来查看下项目目录,可以看到多了一个 hello 的可执行文件。

image

直接执行这个可执行文件,同样输出了 "Hello, World":

image

至此我的 go 语言开发环境就算准备好了。下一篇我将开始设计并创建这个小项目的前端界面,这是我自己的一个习惯,先把自己想的东西画出来,从界面入手,把功能和流程再过一便,确保自己不会做一些多余的事情。敬请关注,我们下一篇见。


zzxworld
7 声望1 粉丝