docker image
#construire une image
FROM golang:1.13 AS builder
WORKDIR /go/src
##Télécharger les bibliothèques dépendantes(Je veux utiliser le cache, je vais donc le faire en premier)
ENV GO111MODULE=on
COPY go.mod go.sum ./
RUN go mod download
ADD . /myapp
WORKDIR /myapp
## main.Compilez go et enregistrez le binaire d'exécution
RUN CGO_ENABLED=0 GOOS=linux go build -o server ../myapp/cmd/main.go
# run-image temporelle
FROM alpine:3.10
COPY --from=builder /myapp/server /app
EXPOSE 50051
ENTRYPOINT ["/app"]
#construire une image
FROM golang:1.13 AS builder
ADD . /go/src/github.com/myself/myapp
WORKDIR /go/src/github.com/myself/myapp
##Dep installation et résolution des dépendances
RUN go get github.com/golang/dep/cmd/dep
RUN dep ensure
## main.Compilez go et enregistrez le binaire d'exécution
RUN CGO_ENABLED=0 GOOS=linux go build -o server /myapp/cmd/main.go
# run-image temporelle
FROM alpine:3.10
COPY --from=builder /go/src/github.com/myself/myapp/server /app
EXPOSE 50051
ENTRYPOINT ["/app"]
impossible de trouver le package
dans la compilationles packages ont fondé A et B
dans la compilation--Il y a plusieurs packages dans le même répertoire
_test
sont interprétés comme du code de test, ils peuvent donc être placés en tant qu'éléments multiples à titre d'exception.XX n'utilise pas un système de contrôle de version connu
/ vendor
et cela a fonctionné pour une raison quelconque/ hoge n'est pas dans une erreur GOPATH / src
connue――Je ne sais pas, mais la structure des répertoires semble inutile
$ GOPATH / src
./ go / src
dans le conteneur
--Mettre un lien symboliqueimportation de projet racine: dep ne prend actuellement pas en charge l'utilisation de GOPATH / src comme erreur de racine du projet
GOPATH / src
, mais il a été corrigé en le changeant en GOPATH / src / app
.fatal: could not read Username for'https: // github.com '~
--Lorsque vous prenez des ressources d'un référentiel privé, vous devez utiliser un jeton github, etc. Cependant, vous devriez pouvoir utiliser le chemin local lorsque vous utilisez les ressources de votre propre référentiel. Si vous ne pouvez pas l'obtenir, il est probable que le chemin soit faux
go / src / app
à / go / src / github.com / self / my-app
CGO_ENABLED = 0
au moment de la construction
CGO_ENABLED=0 go build
Recommended Posts