无法让Google Auth在docker内部工作以发布到pubsub

时间:2018-08-02 08:13:18

标签: docker go google-cloud-platform google-cloud-pubsub

我正试图让我的小型go应用(pub / sub)在docker内部工作,所以我将其放入GKE,但由于某种原因我无法使auth工作。

EID         name          result                 title
----------- ------------- ---------------------- -----
110         Tom           2                      x1
110         Tom           3                      x2
110         Tom           5                      x3
110         John          4                      x1
110         John          3                      x2
110         John          6                      x3
110         Sam           1                      x1
110         Sam           2                      x2
110         Sam           3                      x3

我正在这样创建dockerfile:

UNION ALL

该应用程序确实在我获取数据输出时启动,但是当它尝试发布到pubsub时,它似乎已经出现,然后抛出了此错误:UNION

-------更新----------

我更改了Dockerfile以添加x509证书,但仍然存在证书问题,看起来像这样:

UNION

Docker文件:

 docker run --rm -it gcr.io/snappy-premise-118915/sensorgen:v1
{"pressure":24.10712641247902,"temperature":70.24302653595491,"dewpoint":41.3666446148299,"timecollected":"","latitude":-121.47104803040895,"longitude":0.007102469057958554,"humidity":19.463373213885937,"sensorId":"","zipcode":0}
2018/08/02 07:37:14 Failed to publish: context deadline exceeded

---------更新---------------

在图像上更改了我的docker文件,但仍然无法通过:

FROM golang:1.8-alpine
COPY ./ /src
ENV LATITUDE = "-121.464"
ENV LONGITUDE = "36.9397"
ENV SENSORID = "sensor1234"
ENV ZIPCODE = "95023"
ENV INTERVAL = "3"
ENV GOOGLE_CLOUD_PROJECT = "snappy-premise-118915"
RUN apk add --no-cache git && \
    cd /src && \
    go get -t -v cloud.google.com/go/pubsub && \
    CGO_ENABLED=0 GOOS=linux go build main.go

# final stage
FROM alpine
ENV LATITUDE "-121.464"
ENV LONGITUDE "36.9397"
ENV SENSORID "sensor1234"
ENV ZIPCODE "95023"
ENV INTERVAL "3"
ENV GOOGLE_CLOUD_PROJECT "snappy-premise-118915"
ENV GOOGLE_APPLICATION_CREDENTIALS "/app/key.json"
WORKDIR /app
COPY --from=0 /src/main /app/
COPY --from=0 /src/key.json /app/
ENTRYPOINT /app/main

dockerfile

2018/08/02 07:37:14 Failed to publish: context deadline exceeded

1 个答案:

答案 0 :(得分:1)

您似乎正在使用多阶段构建(https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds)。

在原始版本中,您添加了一些文件。但是,当您进入下一个阶段时,需要将它们复制过来。因此,您可以使用COPY --from=0语句来执行此操作,也可以将ADD和COPY语句简单地移到最后阶段。