首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Debian码头形象中用图书馆员构建Golang应用程序?

在Debian码头形象中用图书馆员构建Golang应用程序?
EN

Stack Overflow用户
提问于 2019-09-27 05:53:52
回答 1查看 2.7K关注 0票数 3

有了阿尔卑斯,阿尔卑斯完全支持最新版本的图书库,我可以在我的Dockerfile中执行apk add,并完成以下工作:

代码语言:javascript
复制
FROM golang:1.13-alpine3.10 as builder

WORKDIR /app
COPY go.mod go.sum ./
COPY src ./src/

RUN set -eux; \
  apk add --no-cache gcc git libc-dev librdkafka-dev; \
  go build -o ./ ./...

现在,对于一个特定的项目,我需要使Debian友好的二进制文件,这将运行在Debian/Ubuntu服务器上。

问题是:

  • 是一个官方的Debian存储库,它只支持非常旧的0.11.x版本的图书库。即使是伸展和破坏,包括后台报告。他们没有更新的版本,官方的汇合存储库
  • 只支持Debian8上的图书库(jessie)。由于libssl版本的incompatibility.
  • The官方图片只支持Debian 9(拉伸)和10 (buster),所以他们根本不支持Debian 9(拉伸)或10 (buster)上的图书卡。他们不支持Debian 8(杰西)。

我的选择:

  • 使用Golang客户端的开发分支,它不需要在系统级别安装图书馆员。如果是稳定的,在Debian9/10上安装/构建recommended.
  • Manually库,那就太棒了。
  • 获得了Debian8golang的图像?
  • ,我能从阿尔卑斯山做Debian目标构建吗?我想没有,但值得一问。--

推荐的解决方案是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-09-30 08:01:55

这是对我有效的解决办法。我不得不从源代码下载它,它给出了最新的版本。

示例Dockerfile如下所示:

代码语言:javascript
复制
FROM golang:1.12.9-alpine AS build-stage

LABEL app="application_name"

ENV PATH=$PATH:$GOROOT/bin:$GOPATH/bin

# Because of https://github.com/docker/docker/issues/14914
# required by go get
RUN apk add --update --no-cache alpine-sdk bash python ca-certificates \
      libressl \
      tar \
      git openssh openssl yajl-dev zlib-dev cyrus-sasl-dev openssl-dev coreutils

WORKDIR /src/application_name

RUN git clone https://github.com/edenhill/librdkafka.git
WORKDIR /src/application_name/librdkafka
RUN /src/application_name/librdkafka/configure --prefix /usr
RUN make
RUN make install

WORKDIR /src/application_name
COPY . .
# build the application
RUN GOOS=linux go build -a -o image-name .
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58128541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档