Golang构建Docker流程 | 青训营

91 阅读1分钟

范例 Dockerfile:
本文皆以此Dockerfile做范例

FROM golang:latest
WORKDIR /project_name
COPY . .
RUN go mod download
RUN go build -o main .
EXPOSE 3000
CMD ["./main"]

第一行:
指定基底image
这里指定的是golang官方的最新image

FROM golang:latest

第二行:
指定项目文件夹
也就是整个项目的根目录

WORKDIR /project_name

第三行:
将项目内所有程式码复制到docker根目录

COPY . .

第四行
RUN用于执行指令
这里按照go.mod
安裝项目所需套件

RUN go mod download

第五行
RUN用于执行指令
将项目编译成可记性文件

RUN go build -o main .

第六行
指定项目对外port号
记得要和项目內所指定的port号一样

EXPOSE 3000

第七行
执行已编译好的2进制文件

CMD ["./main"]

Build & Run Container

Build:
用上面所写的Dockerfile
build一个叫做user_name/project_name的image

docker build -t user_name/project_name .

Run:
按照刚刚bulid好的image
run一个container
并且将port号绑定本机的port号

docker run --rm -d -p 3000:3000 user_name/project_name