首页 > 解决方案 > 由于 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 有关!

标签: 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"]

推荐阅读