2017-12-13 5 views
0

Ich habe folgende Dockerfile:Flag angegeben, aber nicht definiert

FROM golang:1.9.2 

ADD . /go/src/github.com/golang/example/outyet 
ADD . /go/src/github.com/derekparker/delve/cmd/dlv 

RUN go install github.com/golang/example/outyet 
RUN go install github.com/derekparker/delve/cmd/dlv 

RUN ["chmod", "+x", "/go/src/github.com/golang/example/outyet/bootstrap.sh"] 
CMD ["/go/src/github.com/golang/example/outyet/bootstrap.sh"] 

EXPOSE 8091 
EXPOSE 5432 

Und folgende bootstrap.sh:

#!/bin/sh 
go build -gcflags='-N -l' github.com/golang/example/outyet && 
dlv --listen=:5432 --headless=true --api-version=2 exec outyet; 

Nachdem mit folgenden Zeilen Behälter und Bild laufen:

sudo docker build -t outyet . 
sudo docker run -p 6060:8091 -p 5432:5432 --name test --rm outyet 

Ich erhalte folgende Ausgabe:

flag provided but not defined: -listen 
Usage of dlv: 
    -http string 
     Listen address (default ":8091") 
    -poll duration 
     Poll period (default 1s) 
    -version string 
     Go version (default "1.4") 

Wenn ich bootstrap.sh lokal auf meiner Ubuntu Hostmaschine starte, funktioniert alles gut. Was ist falsch? jetzt

Antwort

0

Ich konnte es beheben, meine Dockerfile wie folgt aussieht:

FROM golang:1.9.2 

ADD . /go/src/github.com/golang/example/outyet 

RUN go install github.com/golang/example/outyet 
RUN ["chmod", "+x", "/go/src/github.com/golang/example/outyet/bootstrap.sh"] 
RUN ["chmod", "+x", "/go/bin/outyet"] 

CMD ["/go/src/github.com/golang/example/outyet/bootstrap.sh"] 

EXPOSE 8091 
EXPOSE 5432 

bootstrap.sh:

#!/bin/sh 
go get github.com/derekparker/delve/cmd/dlv; 
go build -gcflags='-N -l' github.com/golang/example/outyet && 
dlv --listen=:5432 --headless=true --api-version=2 exec outyet 

Und es wie folgt aus:

sudo docker build -t outyet . 
sudo docker run --security-opt=seccomp:unconfined --net=host --name test --rm outyet 
Verwandte Themen