【问题标题】:docker: flag provided but not defined码头工人:提供但未定义的标志
【发布时间】:2018-11-15 21:43:36
【问题描述】:

我正在为我的项目使用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',因为默认主机是 localhost 仍然会出现该错误:

提供但未定义的标志:-pg-password

当我尝试删除 -pg-host-pg-password 并且只让 pg-prometheus-log-samples 仍然出现该错误时”:

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

有人知道为什么不识别这些标志值吗?

我也尝试将-pg-password='mypassword' 写成-pg-password=mypassword 甚至-pg-password mypassword,但仍然出现同样的错误。

附言我在 Windows 中完成所有这些操作

【问题讨论】:

    标签: docker makefile dockerfile dep


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多