# 创建 Go 项目

# 创建项目目录

mkdir -p /go/src/myapp && cd /go/src/myapp

# 创建 main.go 文件

package main
import "fmt"
func main() {
    fmt.Println("Hello, World!")
}

# 编写 Dockerfile

创建 Dockerfile 文件

cd /go && vi Dockerfile

内容如下:

# 使用 Go 1.20 版本和 Alpine Linux 作为基础镜像
FROM golang:1.20-alpine
# 设置 Go 环境变量
ENV GO111MODULE=on \
    CGO_ENABLED=0 \
    GOROOT=/usr/local/go \
    GOPATH=/go \
    GOBIN=/go/bin \
    PATH=/go/bin:$PATH
# 创建 Go 的工作目录
RUN mkdir -p "$GOPATH/src" "$GOBIN" && chmod -R 777 "$GOPATH"
# 设置容器的工作目录
WORKDIR /go
# 可选:安装一些基本工具
RUN apk update && apk upgrade && \
    apk add --no-cache git bash curl
# 可选:复制本地 Go 代码到容器内
# COPY ./src /go/src
# 可选:构建 Go 程序
# RUN go build -o /go/bin/myapp /go/src/myapp/main.go
# 容器启动时运行的命令
# 容器启动时运行的命令(应根据实际情况修改)
# 假设构建好的 Go 程序名为 myapp,并且已经通过之前的步骤复制到 /go/bin 目录下
# CMD ["/go/bin/myapp"]
CMD ["/bin/sh"]

# 构建镜像

自定义镜像名称 如 gotest

docker build -t gotest .

通过 docker images 命令查看镜像是否成功构建

# 运行容器

docker run -d -v /go:/go -it gotest /bin/sh

# 额外内容

快速启动一个 golang 容器

docker run -d -v /go:/go -it golang:1.20-alpine /bin/sh
更新于 阅读次数