main
Overview
接受命令行参数
configPath := flag.String("c", "../config.yml", "配置文件路径")
flag.Parse()
configPath:这是一个变量名,类型为*string,即指向字符串的指针。这个变量将用于存储命令行标志的值。
flag.String:这是flag包中的一个函数,用于定义一个字符串类型的命令行标志。它接受四个参数:
第一个参数是标志的名称,这里是"c"。
第二个参数是标志的默认值,这里是"../config.yml",表示如果用户没有在命令行中指定该标志,则使用这个默认值。
第三个参数是标志的描述,当用户使用-h或--help选项时,这个描述会显示出来,这里是"配置文件路径"。
第四个参数是一个指针,指向存储标志值的变量,这里是configPath。
构建和打包
构建
FROM golang:1.21-alpine as BUILDER
WORKDIR /gvb
COPY go.mod go.mod
COPY go.sum go.sum
RUN go env -w GO111MODULE=on \
&& go env -w GOPROXY=https://goproxy.cn,direct \
&& go mod download
COPY . .
RUN cd cmd && go build -o server .
使用Go编译器构建应用程序,输出文件名为server。
打包
FROM alpine:3.19
ENV WORK_PATH /gvb
WORKDIR ${WORK_PATH}
COPY --from=0 ${WORK_PATH}/cmd/server .