我正在尝试使用GCP Cloud Run将Docker镜像部署到Web。使用图形界面:
1.我创建一个服务
1.输入我的图片如下:docker.io/phillymontana/test:v1.0-这里没有问题。当我在本地机器上构建容器时,此映像将运行。
我的dockerfile如下:
FROM nginx:latest
RUN rm /usr/share/nginx/html/index.html
RUN rm /usr/share/nginx/html/50x.html
COPY index.html /usr/share/nginx/html/
COPY style.css /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
我在UI选项中将容器端口设置为80。
考虑到我的问题是一个.conf文件,我甚至包括它如下:
server {
listen 80;
location / {
root /usr/share/nginx/html/;
include /etc/nginx/mime.types;
try_files $uri $uri/ /index.html;
}
}
当我尝试创建部署时,我得到以下错误:“版本”myapp-00001-c9 t“未就绪,无法提供流量。用户提供的容器无法启动并侦听由PORT=80环境变量提供的端口。'
这只是一个简单的html和css文件,使用nginx web服务器。
有人能告诉我我错过了什么吗?我以为这会很简单。我正在测试这一点,以便我可以继续弄清楚如何部署我的react应用程序。
我期待部署为我创建一个URL,并在浏览器中运行我的应用程序。
1条答案
按热度按时间368yc8dk1#
老实说,我花了两天时间试图找到这个问题的答案。我在StackOverflow上发表的第二篇文章,我遇到了以下细微差别:
如果你像我一样在Mac上开发M1芯片,如果你计划部署到云(AWS或GCP等),你必须把这个标志放进你的dockerfile中-
从**--platform=Linux/amd64**nginx:latest
就这样!我以同样的方式部署了几天,它就像一个魅力。
愚蠢的GCP。