docker是很强大的容器,目前很多公司都在使用,今天简单说一下go的项目中启动docker,编译代码以及其中的一些坑。后续会有更多的模式和算法以及区块链相关的,如果你是想学习go语言或者是对设计模式或者算法感兴趣亦或是区块链开发工作者,都可以关注一下。(微信公众号/头条:Go语言之美,更多go语言知识信息等)。公众号会持续为大家分享更多干货。
在我们安装docker之后,我们需要下载docker的sdk。附上docker sdk链接:
https://docs.docker.com/develop/sdk/examples/
我们可以调用docker的api来创建一个容器,同时编译代码,然后我们将编译好的文件可以再通过一个容器来作为我们的sever。这个使用场景是很常见的,每一个使用docker或者学习docker的人都应该掌握。
如果我们将编译代码部分做成自动化那么我们就可以将写好的代码发送到指定的程序中,程序里面可通过使用docker将代码编译成文件,再启动这个文件作为sever。
首先说创建容器时编译代码,下面的代码是官方文档上的示例代码创建容器:
package main
import (
"io"
"os"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/client"
"golang.org/x/net/context"
)
func main() {
ctx :