Saya mengalami masalah untuk membuat image Docker dari layanan go saya (lihat pesan kesalahan di bagian akhir). Kode layanan saya terstruktur seperti ini:

cmd
  - duc-adobe
pkg
  - adobe
  - common
.gitignore
Dockerfile
go.mod
go.sum

Ini adalah file Docker saya:

# build image
FROM golang:1.12-alpine as builder
RUN apk update && apk add --no-cache git ca-certificates && update-ca-certificates

WORKDIR /app

# first download dependencies so that we can utilize the docker cache
COPY go.mod .
COPY go.sum .
RUN go mod download

RUN CGO_ENABLED=0 go build ./cmd/duc-adobe -o /go/bin/app

# executable image
FROM alpine:3.9
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /go/bin/app /go/bin/app

ENTRYPOINT ["/go/bin/app"]

Masalahnya

Build gagal dan saya tidak tahu bagaimana saya bisa memperbaiki masalah ini. Ini adalah outputnya:

Step 1/11 : FROM golang:1.12-alpine as builder
 ---> 6b21b4c6e7a3
Step 2/11 : RUN apk update && apk add --no-cache git ca-certificates && update-ca-certificates
 ---> Using cache
 ---> 14b9eb869a9f
Step 3/11 : WORKDIR /app
 ---> Using cache
 ---> c2d0df63dc21
Step 4/11 : COPY go.mod .
 ---> Using cache
 ---> abd95c3f18eb
Step 5/11 : COPY go.sum .
 ---> Using cache
 ---> 3d49861b4f74
Step 6/11 : RUN go mod download
 ---> Using cache
 ---> 3cc3c7752c04
Step 7/11 : RUN CGO_ENABLED=0 go build ./cmd/duc-adobe -o /go/bin/app
 ---> Running in b1034f9c05bb
go: directory /go/bin/app outside available modules
The command '/bin/sh -c CGO_ENABLED=0 go build ./cmd/duc-adobe -o /go/bin/app' returned a non-zero code: 1

Saya tidak yakin bagaimana dalam arti apa saya perlu membuat modul go dapat diakses atau bagaimana saya bisa memperbaiki masalah ini?

0
kentor 9 Agustus 2019, 11:52

1 menjawab

Jawaban Terbaik

Lihat penggunaan go build:

shubuntu1@shubuntu1:~$ go help build
usage: go build [-o output] [-i] [build flags] [packages]

Jadi, Anda harus meletakkan -o di tengah perintah, seperti:

go build -o /go/bin/app ./cmd/duc-adobe 
0
atline 9 Agustus 2019, 09:05