尝试使用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真方便啊…♠︎

广告
将在 10 秒后关闭
bannerAds