我在运行容器时遇到了一些问题
步骤:>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
##### Stage 2
FROM nginx:alpine
# VOLUME /var/cache/nginx
COPY
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;
}
}