首页 > 其他分享 >Dockerfile加载cache提速制作golang业务镜像

Dockerfile加载cache提速制作golang业务镜像

时间:2023-07-07 22:33:59浏览次数:43  
标签:cache golang build myapp go COPY Dockerfile

Dockerfile

# syntax=docker/dockerfile:1.2
FROM golang-1.18.5:ubuntu-22.04 AS builder

ENV CGO_ENABLED 0
ENV GOOS linux
ENV GOPROXY https://goproxy.cn,direct

WORKDIR /build/

COPY go.* .
RUN  go mod download
COPY  . .
RUN --mount=type=cache,target=/root/.cache/go-build go mod tidy && go build -v -o ./myapp ./...

FROM ubuntu:22.04

WORKDIR /apps

COPY --from=builder /build/myapp /apps/myapp
COPY --from=builder /build/app/myapp/etc/myapp.yaml /apps/myapp.yaml

EXPOSE 9003

CMD ["./myapp", "-f", "./myapp.yaml"]

 

标签:cache,golang,build,myapp,go,COPY,Dockerfile
From: https://www.cnblogs.com/wangguishe/p/17536220.html

相关文章

  • Dockerfile制作golang-ubuntu_22.04基础镜像
    DockerfileFROMubuntu:22.04ADDgo1.18.5.linux-amd64.tar.gz/usr/localENVPATH=/usr/local/go/bin:$PATH生成镜像#dockerbuild-fDockerfile-tgolang-1.18.5:ubuntu-22.04.验证镜像#dockerrun-it--rmgolang-1.18.5:ubuntu-22.04goversiongoversiongo......
  • golang中的空切片和nil切片
    Golang中的切片是很基本的数据结构,它的底层是一个数组,表层是一个包含三个变量的结构体:typeslicestruct{arrayunsafe.Pointer //指针,指向底层的数组lengthint //切片的长度capcityint //切片的容量}当把一个切片赋值给另一个切片时,实际上是对切片表层结构体的浅......
  • linux环境安装golang
    在使用pprof工具分析性能时,发现我们的环境上默认没有装go,所以执行不了gotoolpprof命令,于是自己手动装了下。步骤如下:首先下载一个对应系统架构的golang包,这里我用的是arm包,装的1.14.12版本。(见附件)。在环境上创一个个人目录,把包传上去,然后执行以下命令解压到/usr/local目录下(官......
  • Golang中的Channel(二)
    上篇介绍了Channel是什么以及它的类型,这篇总结一下Channel的用法。 基本语法(1)        声明channel声明channel的语法格式为:varChannelNamechanElementType与其他变量声明不同的是,在类型前面多了一个chan关键字。ElementType指的是这个channel能够传递的数据类......
  • Golang中的Channel(一)
    Golang在并发编程上有两大利器,分别是channel和goroutine。Golang中有一句名言:“使用通信来共享内存,而不是通过共享内存来通信”。这句话有两层意思,Go语言确实在sync包中提供了传统的锁机制,但更推荐使用channel来解决并发问题。这里先对Channel做一个基本的介绍,对于其深一层的实现......
  • Golang的类图
    @目录1.依赖(Dependency)1.1概念1.2代码示例1.3类图示例2.泛化(Generalization)-继承2.1概念2.2代码示例2.3类图3.泛化(Generalization)-实现3.1概念3.2代码示例3.3类图4.关联关系(Association)4.1概念4.2代码示例4.3类图5.聚合关系(Aggregation)5.1概念5.2代码示例5.3......
  • golang 解析yaml文件
    初始化packagemainimport( "github.com/spf13/viper")funcinitConfig(){ viper.SetConfigName("config") viper.AddConfigPath("./") iferr:=viper.ReadInConfig();err!=nil{ fmt.Println("Initsetingerror:",......
  • golang之http请求库go-resty
     github: https://github.com/go-resty/resty go-resty特性#go-resty 有很多特性:发起GET,POST,PUT,DELETE,HEAD,PATCH,OPTIONS,etc.请求简单的链式书写自动解析JSON和XML类型的文档上传文件重试功能客户端测试功能RestyclientCustom RootCertificates andC......
  • geoserver(内置GeoWebcache)+arcgis瓦片(完整)
    环境:geoserver-2.18.0-bin、geowebcache-1.18.3-war里的gwc-arcgiscache-1.18-SNAPSHOT.jargeoserver下载地址:https://sourceforge.net/projects/geoserver/files/latest/downloadGeoWebcache:https://sourceforge.net/projects/geowebcache/files/geowebcache/1.18.3/geowebcache......
  • GeoWebCache+arcgis紧凑型瓦片
     利用网上下载geowebcache-1.18.3-war+apache-tomcat-9.0.35进行部署并运行GeoWebcache:https://sourceforge.net/projects/geowebcache/files/geowebcache/1.18.3/geowebcache-1.18.3-war.zip/download 1、修改Geowebcache.war中的配置文件,打开geowebcache\WEB-INF\geowe......