这种方式 如下,是在容器里,将 golang 程序编译的。所以需要依赖 golang sdk 进行编译 FROM golang:alpine WORKDIR $GOPATH/src/gin_docker ADD . ./ ENV GO111MODULE=on ENV GOPROXY="https://goproxy.io" RUN go build -o gin_docker . EXPOSE 8080 ENTRYPOINT ["./gin_docker"] 1. 2. 3. 4. ...
docker run--rm-v ~:/root-v ~/go:/go-w`pwd`golanggobuild 参数解释 1:--rm表示执行完会自动删除容器 2:这里的-v ~:/root表示你的代码放在用户目录里。 3:这里的-v/go:/go代表go的pkg包和依赖项下载到/go里 4:这里的-wpwd代表让容器里的工作目录与主机目录保持一致 ...
2.1 方法一:通过brew安装golang 首先看看有哪些golang版本可用 fabric:~ fabric$ brew search go ==> Formulae algol68g go-jira gofabric8 goolabs gx-go mongodb@3.6 arangodb go-statik goffice goose Hugo mongoose argon2 go@1.4 gollum gopass jfrog-cli-go pango bogofilter go@1.8 golo gor jpegopt...
可以在 docker build 命令中使用 -f 标志指向文件系统中任何位置的 Dockerfile。 所以Dockerfile文件的配置至关重要,我把上面的命令详细解释一下 (1)#Dockerfile:用来标记这是Dockerfile文件,可写可不写,写上的话必须要用#注释、 (2)From 后面跟母镜像:例如我们这个项目是golang,所以就一定需要golang的依赖环境...
FROM golang:1.20.5-alpine as builder # 这里在docker里也使用go module的代理服务 ENV GOPROXY https://goproxy.cn,direct ENV GO111MODULE on # 在容器根目录 创建一个 apps 目录 RUN mkdir -p /apps # 设置工作目录 WORKDIR /apps COPY . /apps ## 编译 RUN go build -o /apps/main ./main.go...
#进行golang环境的设置,开启go mod 并设置镜像RUNgo env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.io,direct# 编译 镜像RUNCGO_ENABLED=0GOOS=linux go build -o app # 使用最小的开始 制作镜像FROMscratch as final # 从编译中导入镜像Import from builder. ...
RUN go build -o gin_docker . EXPOSE 8080 ENTRYPOINT ["./gin_docker"] 这种方式,我不太喜欢,打包的镜像文件太大了 。 最少也是100M,也浪费了golang 的交叉编译的功能。 2.在本地使用交叉编译,将go程序编译成 Linux 可以执行文件,然后只需要依赖一个非常小的操作系统就可以了。如: alpine 只有 3M 左右...
docker build -t my-golang-app . 这个命令将会使用当前的Dockerfile构建一个名为my-golang-app的镜像。最后,我们可以使用以下命令来运行我们的Golang应用:shell docker run -p 8080:8080 my-golang-app这个命令将会运行我们的Golang应用,并将容器的8080端口映射到主机的8080端口。我们可以通过访问主机的8080端口...
-e GOOS/-e GOARCH:指定编译平台,可以很方便的进行交叉编译 golang:1.8:镜像名称 这样,我们只需要在我们的代码目录下,增加一个脚本build.sh, 内容如下: docker run-v"$GOPATH":/go--rm-v"$PWD":/go/src/myapp-w/go/src/myapp-eGOOS="darwin"-eGOARCH="amd64"golang:1.8go build-v ...
build.sh里面的代码是这样,大概就是进入目录,编译golang ,最后运行编译好的server 文件 #!/usr/bin/envbash cd/go/src/ActivitApi/server && go build && ./server 其实可以直接运行编译好的.server 文件,因为每次启动的时候,它才去编译,可能启个服务,需要几秒钟的时间,我们写的大概编译再启动需要10秒左右的...