docker - 由于 go 命令失败,无法创建映像
问题描述
我正在尝试基于此 dockerfile 创建图像:
https://github.com/99designs/aws-vault/blob/master/Dockerfile
以下是我遵循的 3 个步骤:
git clone https://github.com/99designs/aws-vault.git
cd aws-vault/
docker build . --disable-content-trust -t shantanuo/pm
得到这个错误:
The command '/bin/sh -c go build -a -tags netgo -ldflags '-w' -o /bin/aws-vault' returned a non-zero code: 1
不确定这个问题是否与 go 语言或 docker 有关!
解决方案
您首先需要安装所有必需的库,您可以从错误跟踪中找到它们。
用这个 :
FROM golang:1.9.2 AS build-env
ENV CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64
WORKDIR /go/src/github.com/99designs/aws-vault
ADD . /go/src/github.com/99designs/aws-vault
RUN go get github.com/99designs/keyring \
github.com/aws/aws-sdk-go/aws \
github.com/aws/aws-sdk-go/aws/awserr \
github.com/aws/aws-sdk-go/aws/credentials \
github.com/aws/aws-sdk-go/aws/session \
github.com/aws/aws-sdk-go/service/iam \
github.com/aws/aws-sdk-go/service/sts \
github.com/mitchellh/go-homedir \
github.com/skratchdot/open-golang/open \
golang.org/x/crypto/ssh/terminal \
gopkg.in/alecthomas/kingpin.v2 \
gopkg.in/ini.v1
RUN go build -a -tags netgo -ldflags '-w' -o /bin/aws-vault
FROM alpine
COPY --from=build-env /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=build-env /bin/aws-vault /aws-vault
ENTRYPOINT ["/aws-vault"]
推荐阅读
- layout - AndroidX 是否仍然允许RelativeLayout?
- python - sklearn 在插补期间向测试数据集添加行的迭代插补
- javascript - 使用 DOM 在 flexbox 列内动态地使 div 垂直居中
- java - 休眠映射问题(使用 xml 更改注释)
- python - 无法提高模型精度
- c++ - 我在 C++ 中使用很多结构是正常的吗?
- python - 如何使用 google colab 在 jupyter notebook 中显示 GIF?
- python - statsmodel GLM fit_constrained - 'int' 类型的对象没有 len()
- bash - 本地机器覆盖的 Docker 映像环境变量
- vue.js - 将整个对象传递给子组件是个好主意吗?