docker 如何解决谷歌计算引擎SSL设置401错误的证书

7rtdyuoh  于 2022-11-03  发布在  Docker
关注(0)|答案(1)|浏览(140)

我在我的开发环境中使用docker compose,项目运行。我想只要我在云控制台中为项目设置了防火墙规则,它就会自动打开端口。[但我需要使用-p标志运行docker]
vm运行项目中的Dockerfile,并使用我的映像打开一个容器,但没有打开端口。我必须在stop中使用ssh并删除容器,然后在映像上运行一个新的容器,并设置-p 80:8080标志,以便能够在http中看到该站点。
我正在为我的vm使用一个私有映像,当容器启动时,该映像会让网站运行。
这是我的Dockerfile:

FROM golang:1.19.2-alpine3.16
 RUN addgroup app && adduser -S -G app app
 USER app
 WORKDIR /app
 RUN mkdir data
 COPY go.mod ./
 COPY go.sum ./
 RUN go mod download
 COPY . . 
 CMD go build -o apps cmd/web/*.go && ./apps -cache=true - 
  production=true
  EXPOSE 80:8080

这是合成文件[但它现在不是图像的一部分],在上一个文件夹中

version: "3.8"
 services: 
   frontend: 
     build: ./app_links
     ports: 
       - 80:8080

请注意,这是来自谷歌文档:[而且实际上是错误的]
容器端口与主机虚拟机端口具有一对一Map。例如,容器端口80Map到主机虚拟机端口80。计算引擎不支持端口发布(-p)标志,您不必指定它,Map也可以工作。要发布容器的端口,配置防火墙规则以允许访问主机VM示例的端口。根据防火墙规则,可以自动访问容器的相应端口。
Google文档
这是我从谷歌上得到的管理证书后,设置了一个前端和后端服务与健康检查:

"error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"errors": [
{
"message": "Login Required.",
"domain": "global",
"reason": "required",
"location": "Authorization",
"locationType": "header"
}
],
"status": "UNAUTHENTICATED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "CREDENTIALS_MISSING",
"domain": "googleapis.com",
"metadatas": {
"method": "compute.v1.SslCertificatesService.Get",
"service": "compute.googleapis.com"
}
68bkxrlz

68bkxrlz1#

我需要将指向负载平衡器IP地址的记录添加到Google Domains dns设置中[Other Registrars may be different]

相关问题