Sign inSign up

easyunit/go

By easyunit

•Updated over 5 years ago

golang runtime environment.

Image
0

1.9K

easyunit/go repository overview

⁠工具说明

  • golang运行时默认向下兼容,不论你的go代码使用的是哪个版本,均可以使用最新版docker镜像
  • 基于golang官方镜像alpine版本
  • 添加htop运维工具,如果你需要定制运维工具,请拉到最底部联系我
  • 关闭了go env中的cgo docker镜像没有c环境,所以cgo默认会报错,直接运行go test等不方便
  • 进入容器默认目录从/go改为了/go/src
  • 时区改为了东8区,如下代码:
fmt.Println(time.Now())
- 宿主机输出东八区时间2021-02-19 15:04:05.823838 +0800 CST m=+0.000086180
- 容器内默认会输出UTC时区时间2021-02-19 07:04:05.8404027 +0000 UTC m=+0.000090201 现已经调整为东八区

⁠下载不同版本

  • 1.16版本 latest版本
docker pull easyunit/go
docker pull easyunit/go:latest
docker pull easyunit/go:1.16
  • 1.15 版本
docker pull easyunit/go:1.15
⁠小版本更新说明
  • 当前1.16为1.16.2,相比较于1.16.0官方修复了xml的一个bug(虽然大家都不用xml)
  • 当前1.15为1.15.10,相比较于1.15.9官方修复了xml的一个bug(虽然大家都不用xml)

⁠作为开发环境使用

  • 您可以使用docker run直接运行
docker run -tid --name go -p 8000:8000 -v ~/go:/go easyunit/go
  • 也可以使用docker-compose运行
    • 在空目录创建docker-compose.yml文件,并录入如下内容
version: "2"
services:
  golang:
    container_name: golang
    image: easyunit/go:1.16
    ports:
      - 8000:8000
    volumes:
      - ~/go:/go
    working_dir: /go/src
    # restart: always
    command: ["tail","-f","/dev/null"]
- 在dockker-compose.yml所在的目录运行```docker-compose up -d```命令即可启动

⁠部署项目

  • 多阶段构建说明
    • 使用go环境构建项目
    • 使用alpine环境运行二进制文件,较少运行时环境的镜像大小,方便传输
  • 请在项目目录创建Dockerfile文件,并录入如下内容
FROM easyunit/go:1.16 as builder
ARG Dir=/go/src
WORKDIR ${Dir}
COPY . .
RUN go build -o main
FROM easyunit/alpine:3-tzdata
ARG Dir=/go/src
WORKDIR ${Dir}
COPY ./logs ./logs
COPY --from=builder  ${Dir}/main ./
COPY --from=builder  ${Dir}/.env ./
EXPOSE 8000
CMD ["./main"]
  • 然后运行docker build 项目名 .命令构建你的镜像
  • 使用自动编排工具或者docker run即可启动你的项目

⁠联系我

Tag summary

Content type

Image

Digest

Size

106 MB

Last updated

over 5 years ago

docker pull easyunit/go