部署到Google计算引擎的Docker映像继续重新启动
我用Docker Compose用谷歌云构建了一个图像。在我的部署到Google计算引擎的Docker映像继续重新启动,docker,google-app-engine,google-cloud-platform,google-compute-engine,google-cloud-build,Docker,Google App Engine,Google Cloud Platform,Google Compute Engine,Google Cloud Build,我用Docker Compose用谷歌云构建了一个图像。在我的cloudbuild.yml文件中,我有以下步骤: 使用docker compose构建docker映像 标记构建的图像 创建一个实例模板 创建实例组 现在的问题是,每次构建一个新实例时,从映像创建的容器都会不断重新启动,并且永远不会真正启动。尽管如此,我还是可以构建映像,并在实例上作为容器启动它,独立于云构建的映像 我设法从日志中找到了一些线索: E1219 19:13:52 7f28dce6d700 api_服务器。cc:184元
cloudbuild.yml
文件中,我有以下步骤:
E1219 19:13:52 7f28dce6d700 api_服务器。cc:184元数据请求未成功:服务器以“禁止”响应(403):传输端点未连接
oauth2.cc:289从元数据服务器docker获取身份验证令牌
通过在实例中运行以下命令,我也得到了一些线索:
docker-a-i启动
输出:无法识别的输入标题:99
cloudbuild.yml
文件看起来像(我用替换了一些变量…
):
我发现了这个问题,我会自己回答这个问题,以防其他人遇到同样的问题 问题是在我的
docker compose.yml
中,stdin_open
和tty
的配置被设置为true,但我的cloudbuild.yml
文件没有接受它,并且正在无声地失败(恼人!)
要解决此问题,您需要在使用容器创建命令上使用标志--container stdin
和--container tty
更多细节可以在谷歌文档上找到我有一个类似的问题,原因是在Dockerfile中设置用户。我使用的是将用户更改为“node”,这是nodejs官方图像中可用的用户。但不适用于谷歌云容器
FROM node:current-buster-slim
USER node
FROM node:current-buster-slim
USER node