设为首页 加入收藏

TOP

go-zero docker-compose搭建课件服务(四):生成Dockerfile(一)
2023-07-23 13:28:58 】 浏览:51
Tags:go-zero docker-compose 生成 Dockerfile

0、转载

go-zero docker-compose 搭建课件服务(四):生成Dockerfile并在docker-compose中启动

0.1源码地址

https://github.com/liuyuede123/go-zero-courseware

1、目前的目录文件结构

目前只是创建好了courseware服务,这一章节我我们先在docker-compose跑通课件服务

.
├── courseware
│   ├── api
│   │   ├── courseware.api
│   │   ├── courseware.go
│   │   ├── etc
│   │   │   └── courseware.yaml
│   │   └── internal
│   │       ├── config
│   │       │   └── config.go
│   │       ├── handler
│   │       │   ├── coursewareaddhandler.go
│   │       │   ├── coursewaredeletehandler.go
│   │       │   ├── coursewaregethandler.go
│   │       │   ├── coursewareupdatehandler.go
│   │       │   └── routes.go
│   │       ├── logic
│   │       │   ├── coursewareaddlogic.go
│   │       │   ├── coursewaredeletelogic.go
│   │       │   ├── coursewaregetlogic.go
│   │       │   └── coursewareupdatelogic.go
│   │       ├── svc
│   │       │   └── servicecontext.go
│   │       └── types
│   │           └── types.go
│   ├── go.mod
│   ├── go.sum
│   └── rpc
│       ├── courseware
│       │   ├── courseware.pb.go
│       │   └── courseware_grpc.pb.go
│       ├── courseware.go
│       ├── courseware.proto
│       ├── coursewareclient
│       │   └── courseware.go
│       ├── etc
│       │   └── courseware.yaml
│       ├── internal
│       │   ├── config
│       │   │   └── config.go
│       │   ├── logic
│       │   │   ├── addlogic.go
│       │   │   ├── deletelogic.go
│       │   │   ├── getlogic.go
│       │   │   └── updatelogic.go
│       │   ├── server
│       │   │   └── coursewareserver.go
│       │   └── svc
│       │       └── servicecontext.go
│       └── model
│           ├── courseware.sql
│           ├── coursewaremodel.go
│           ├── coursewaremodel_gen.go
│           └── vars.go
└── user
    ├── api
    │   └── user.api
    └── rpc
        └── user.proto

2、项目根目录下创建依赖的服务

创建etcd Dockerfile

mkdir etcd
vim etcd/Dockerfile

Dockerfile中的内容,保存并退出

FROM bitnami/etcd:latest

LABEL maintainer="liuyuede123 <liufutianoppo@163.com>"

创建etcd-manage Dockerfile

mkdir etcd-manage
vim etcd-manage/Dockerfile

Dockerfile中的内容,保存并退出

FROM evildecay/etcdkeeper

LABEL maintainer="liuyuede123 <liufutianoppo@163.com>"

3、courseware api和rpc生成Dockerfile

到courseware/api目录下生成Dockerfile

cd courseware/api
goctl docker -go courseware.go
FROM golang:alpine AS builder

LABEL stage=gobuilder

ENV CGO_ENABLED 0
ENV GOPROXY https://goproxy.cn,direct
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk update --no-cache && apk add --no-cache tzdata

WORKDIR /build

ADD go.mod .
ADD go.sum .
RUN go mod download
COPY . .
COPY api/etc /app/etc
RUN go build -ldflags="-s -w" -o /app/courseware api/courseware.go


FROM scratch

COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
ENV TZ Asia/Shanghai

WORKDIR /app
COPY --from=builder /app/courseware /app/courseware
COPY --from=builder /app/etc /app/etc

CMD ["./courseware", "-f", "etc/courseware.yaml"]

到courseware/rpc目录下生成Dockerfile

cd ../rpc
goctl docker -go courseware.go
FROM golang:alpine AS builder

LABEL stage=gobuilder

ENV CGO_ENABLED 0
ENV GOPROXY https://goproxy.cn,direct
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk update --no-cache && apk add --no-cache tzdata

WORKDIR /build

ADD go.mod .
ADD go.sum .
RUN go mod download
COPY . .
COPY rpc/etc /app/etc
RUN go build -ldflags="-s -w" -o /app/courseware rpc/courseware.go


FROM scratch

COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certif
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇实现etcd服务注册与发现 下一篇go-zero docker-compose 搭建课件..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目