3、docker制作镜像

镜像具有 重复性 和 不可变性

 

 

下载并进入 golang 镜像

docker run -it golang:1.17

 

新建 Dockerfile 配置文件

# 启动编译环境
FROM golang:1.17

# 配置编译环境
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,direct

# 拷贝源代码到镜像中
COPY ./gateway /go/src

# 编译
WORKDIR /go/src/gateway
RUN go install ./...

# 设置服务入口
ENTRYPOINT [ "/bin/gateway" ]

 

使用该文件

docker build -t package/name -f ./Dockerfile .

// package/name 表示生成后包的名称

 

测试生成后的东西

docker run package/name

 

Dockerfile命令

https://www.runoob.com/docker/docker-dockerfile.html

 

Docker 镜像瘦身

Dockerfile文件设置为

# 启动编译环境
FROM golang:1.17-alpine AS builder

# 配置编译环境
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,direct

# 拷贝源代码到镜像中
COPY . /go/src/coolcar/server

# 编译
WORKDIR /go/src/coolcar/server
RUN go install ./gateway/...

FROM alpine:3.15
COPY --from=builder /go/bin/gateway /bin/gateway
ENV ADDR=:8080

# 申明暴露的端口
EXPOSE 8080

# 设置服务入口
ENTRYPOINT [ "/bin/gateway" ]

 

posted @ 2022-02-24 19:05  JaydenQiu  阅读(54)  评论(0)    收藏  举报