docker:提供了标志但未定义

时间:2018-06-06 09:08:09

标签: docker makefile dockerfile dep

我正在为我的项目使用prometheus-postgresql-adapter,我正在尝试在Docker中运行它。

我正在阅读他们的所有文件:

go get -u github.com/timescale/prometheus-postgresql-adapter

dep ensure

make

当我写make命令时,它抛出了这个错误:

  

GOOS = mingw64_nt-10.0 GOARCH = amd64 CGO_ENABLED = 0 go build -a -installsuffix cgo --ldflags'-w'-o prometheus-postgresql-adapter main.go   cmd / go:不支持的GOOS / GOARCH对mingw64_nt-10.0 / amd64   make:*** [prometheus-postgresql-adapter]错误2

所以我把它作为make OS=windows

运行

然后

make docker-image

make docker-push ORGANIZATOIN=myusername

但是当我尝试使用此代码运行该图像时:

 docker run --name prometheus_postgresql_adapter --link pg_prometheus -d -p 9201:9201 \
 timescale/prometheus-postgresql-adapter:master \
 -pg-host=pg_prometheus \
 -pg-prometheus-log-samples

得到了那个错误

  提供了

标志但未定义:-pg-host

我甚至将-pg-host=pg_prometheus更改为pg-password='mypassword',因为默认主机is localhost仍会出现错误:

  提供了

标志但未定义:-pg-password

当我尝试删除-pg-host-pg-password时,只让pg-prometheus-log-samples仍然出现错误“:

  提供了

标志但未定义:-pg-prometheus-log-samples

任何人都知道为什么不识别这些标志值?

此外,我尝试将-pg-password='mypassword'写为-pg-password=mypassword,甚至-pg-password mypassword,但仍会出现同样的错误。

P.S。我在windows中做了所有这些

1 个答案:

答案 0 :(得分:-1)

下面,

您需要将所有容器放在一个docker网络中。所以创建一个,比如说psgs:

sudo docker network create psgs

之后,使用--net = psgs运行容器,以指示您希望它们运行的​​docker网络。

最后,适配器似乎期望使用pg。*模式而不是pg- *模式的参数。

sudo docker run --net=psgs --name pg_prometheus -d -p 5432:5432 -e POSTGRES_PASSWORD=paparazzi timescale/pg_prometheus:master postgres -csynchronous_commit=off

sudo docker run --net=psgs --name prometheus_postgresql_adapter --link pg_prometheus -d -p 9201:9201 timescale/prometheus-postgresql-adapter:master -pg.host pg_prometheus -pg.password paparazzi