尝试使用Dockerfile仅构建最小化的Go环境(快速构建)
概要 – 內容摘要
作为学习的一部分,我尝试在Docker上搭建Go的最小环境。
目标
我們針對以下的人進行服務。
-
- 絶対にローカル汚したくない
-
- DockerComposeとかはいらん
-
- フレームワークは使わない
- CLIで動けばそれでいい
实施方式
目錄結構
- go
- Dockerfile
- main.go
Dockerfile -> 基于以下命令构建容器的文件
FROM golang:alpine
RUN apk update && \
apk upgrade && \
apk add bash
WORKDIR /go/src
COPY ./main.go /go/src
CMD ["/bin/bash"]
图层说明
第一层
FROM golang:alpine
在这个层面中,我们指定了使用名为Alpine的Linux发行版来使用Go语言。
注意:Alpine Linux是一种轻量级的Linux发行版之一。
第二层
RUN apk update && \
apk upgrade && \
apk add bash
在这个层级中,我们使用apk命令来更新系统,并且安装了bash和make软件包。
※APK:Alpine Linux的软件包管理系统。
第三层
WORKDIR /go/src
在这一层中,将工作目录设置为/go/src。
第四层。
COPY ./main.go /go/src
在这个层次中,将main.go文件复制到/go/src文件夹中。
第五层
CMD ["/bin/bash"]
在这个层次中,设置了执行/bin/bash的指定。
主程序.go
package main
import "fmt"
func main() {
fmt.Printf("Hello World\n")
}
创建容器
创建形象
docker build -t golang:alpine .
创建容器
docker container run -it --name goapp -v ${PWD}:/go/src golang:alpine
确认行动
5825ed41817f:/go/src# go run main.go
Hello World
重新进入容器的方法
docker start goapp
docker exec -it goapp bash
结语
Docker真方便啊…♠︎