代码之家  ›  专栏  ›  技术社区  ›  Kris Swat

Angular-Google Cloud Run-部署端口问题

  •  1
  • Kris Swat  · 技术社区  · 3 年前

    我在运行容器时遇到了一些问题

    步骤:>ng构建--监视

    这没关系

    构建图像>docker build-t pblah angular-f nginx.prod.dockerfile。

    这也可以

    运行容器>docker run-d-p 8080:80 pblah angular

    这是为页面提供服务,但不是进行后端调用,因为它没有使用后端服务器的端口。这就是问题所在

    我有 proxy.conf.json 目标类似 localhost:9001 并启动 npm start 使用 "start": "ng serve --disable-host-check --proxy-config proxy.conf.json"

    这很好用,因为这不是容器

    但是我怎样才能告诉dockerrun也使用proxy-conf呢?

    第二个问题 :我部署到谷歌云,但它失败了,出现以下错误。我没有使用任何变量。PORT的问题是什么?如何将angular部署到Cloud Run

    修订版pblah-00002-gov的就绪状态更改为False,并显示消息:云运行错误:容器无法启动。无法启动并侦听port环境变量定义的端口。此修订版的日志可能包含更多信息。

    新更新: 我用npm开始测试前端。它通过package.json的启动命令--proxy-config使用了proxy.conf.json

    所以它起作用了

    现在我创建了容器并在nginx上运行 我当时有一种错觉,以为它在起作用。。。尝试了很多docker撰写的东西等等…或者忽略了8080比4200更有效的想法

    一点研究告诉我,我需要在nginx.config中做一些事情

    所以更新了dockerfile以获得额外的CMD(最后一个)

    RUN npm run build -- --prod
    
    ##### Stage 2
    FROM nginx:alpine
    # VOLUME /var/cache/nginx
    COPY --from=node /app/dist/pyui /usr/share/nginx/html
    COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf
    COPY proxy.conf.json /etc/nginx/conf.d/
    
    CMD ["nginx", "-g", "daemon off;"]
    

    并更新了nginx.config的上游部分和/server部分。仍然不能“本地”工作,如果工作,我将更新cloudrun

        upstream springboot
        {
            server localhost:9001  max_conns=10;
        }
    
    server {
        listen 0.0.0.0:80;
        listen [::]:80;
        default_type application/octet-stream;
    
        gzip                    on;
        gzip_comp_level         6;
        gzip_vary               on;
        gzip_min_length         1000;
        gzip_proxied            any;
        gzip_types              text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
        gzip_buffers            16 8k;
        client_max_body_size    256M;
    
        root /usr/share/nginx/html;
    
    
    
        location / {
            try_files $uri $uri/ /index.html =404;
        }
    
        location /server {
            proxy_pass http://springboot;
              proxy_set_header    Host               $host;
              proxy_set_header    X-Real-IP          $remote_addr;
              proxy_set_header    X-Forwarded-For    $proxy_add_x_forwarded_for;
              proxy_set_header    X-Forwarded-Host   $host;
              proxy_set_header    X-Forwarded-Server $host;
              proxy_set_header    X-Forwarded-Port   $server_port;
              proxy_set_header    X-Forwarded-Proto  $scheme;
          }
    } 
    
    0 回复  |  直到 3 年前
    推荐文章