我正试图让我的小型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
答案 0 :(得分:1)
您似乎正在使用多阶段构建(https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds)。
在原始版本中,您添加了一些文件。但是,当您进入下一个阶段时,需要将它们复制过来。因此,您可以使用COPY --from=0
语句来执行此操作,也可以将ADD和COPY语句简单地移到最后阶段。