将编译后的Go二进制文件放在哪里?

zero_coding:

我正在尝试为Go应用程序构建我的第一个Dockerfile,并使用DroneCI构建管道。

DroneCI配置如下所示:

kind: pipeline
type: docker
name: Build auto git tagger

steps:
  - name: test and build
    image: golang
    commands:
      - go mod download
      - go test ./test
      - go build ./cmd/git-tagger

  - name: Build docker image
    image: plugins/docker
    pull: if-not-exists
    settings:
      username: 
      password: 
      repo: 
      dockerfile: ./build/ci/Dockerfile
      registry: 
      auto_tag: true

trigger:
  branch:
    - master

我遵循了https://github.com/golang-standards/project-layout中的结构约定

在此处输入图片说明

到目前为止,Dockerfile如下所示:

FROM alpine:latest

RUN apk --no-cache add ca-certificates

WORKDIR /root/

下一步是将GO应用程序二进制文件复制到容器中,这是问题所在,将编译后的二进制文件放在哪里?目前,它已放入项目文件夹。

俄罗斯冷:

您可以指定输出目录和文件名wit go build -o标志。例如:

go build ./cmd/git-tagger -o ./build/package/foo

然后编辑您的Dockerfile:

  1. 使用COPY或ADD加载二进制文件

  2. ENTRYPOINT或CMD执行

PS,您./build/ci/Dockerfile在配置中指定了Dockerfile路径但是它在package屏幕截图目录中。

不要忘记,您链接的存储库只是smb的个人观点,Go并没有真正将您强制为任何结构,这取决于您的公司风格标准或偏好。因此,将二进制文件放在何处并不是非常重要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Homebrew将二进制文件放在哪里?

二进制文件放在哪里?

我应该将ASP.NET Core Runtime二进制文件放在哪里?

将二进制文件放在哪里,以便它们始终在路径中并且可以轻松找到

编译内核后设备树的二进制文件在哪里

我在哪里存储预编译的二进制文件?

从源代码构建 PHP 后的 PHP 二进制文件在哪里?

使用 make 构建后 GNU coreutils 二进制文件在哪里?

在哪里可以获取Chromium二进制文件?

golang-1.7二进制文件在哪里?

xcodebuild输出二进制文件在哪里?

gdb二进制文件在哪里找到?

主要的Firefox二进制文件在哪里?

Python:我应该将while循环放在哪里才能使这个二进制搜索代码工作?

编译后更改二进制文件目录

使用go动态创建编译的二进制文件

编译后如何将整数存储在二进制文件中?

将ffmpeg编译为独立的二进制文件

将编译时间信息嵌入二进制文件

Android Studio:我应该在哪里将二进制文件与对象RandomAccessFile一起读取?

在哪里使用二进制二进制交叉熵损失

找不到Samba,Samba二进制文件在哪里?

在哪里可以找到Subversion 1.7二进制文件?

我在哪里可以找到我的项目的 Rust 测试二进制文件?

在哪里存储二进制文件以用于单元测试

CentOS 7上的GDAL二进制文件存储在哪里?

ELF二进制文件中默认信号处理程序的代码在哪里?

Xcode中要提交的应用程序二进制文件在哪里?

通用Linux二进制文件openjdk7.tar.gz在哪里?