当前位置: 首页 > 知识库问答 >
问题:

云运行构建和构建docker映像,同时构建docker映像

督烨赫
2023-03-14

目前,我发现谷歌云构建发生在构建docker图像的时候(不像我想象的那样,它会构建我的图像,然后执行我的图像来完成所有的构建)。那是在这篇文章里

谷歌云构建的快速启动

我有一个Dockerfile现在很简单

FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine

RUN mkdir -p ./monobuild
COPY . ./monobuild/
WORKDIR "/monobuild"
RUN ["/bin/bash", "./downloadAndExtract.sh"]

我有一个单一的下载和提取下载任何工件(zip文件)从最后的单构建运行构建(只有修改的服务器被构建或依赖于上一个CI构建的变化的服务器被构建,就像下游库可能被更改)。第一行只是列出了我需要在一个文件中的zip文件的网址...

curl "https://circleci.com/api/v1.1/project/butbucket/Twilio/orderly/latest/artifacts?circle-token=$token" | grep -o 'https://[^"]*zip' > artifacts.txt

while read url; do
    echo "Downloading url=$url"
    zipFile=${url/*\//}
    projectName=${zipFile/.zip/}
    echo "Zip filename=$zipFile"
    echo "projectName=$projectName"

    wget "$url?circle-token=$token"

    mv "$zipFile?circle-token=$token" $zipFile

    unzip $zipFile
    rm $zipFile
    cd $projectName

    ./deployGcloud.sh

    cd ..

done <artifacts.txt

echo "DONE"

当然,deployGcloud脚本中有这些命令,所以这意味着我们在构建docker映像的同时,也在构建google cloud build docker映像(这对我来说仍然很有趣)。。。。

docker build--标记gcr。io/twix/authservice docker推送gcr。io/twix/authservice

gcloud run deploy staging admin——美国西部地区1——图像gcr。io/twix/authservice--平台管理

两个docker命令似乎都在这上面跑偏了...

 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

虽然gcloud命令似乎很乐意进行部署,但只是使用我们在该位置部署的前一个映像。

那么,如何绕过这个错误,让我的构建工作起来,html" target="_blank">构建N个映像,并将它们全部部署到云运行?

共有1个答案

赫连正初
2023-03-14

哦,我终于想通了。谷歌有一个奇怪的东西,它的config.yaml文件使用这个docker图像来运行一个curl命令,然后在下一步使用这个其他dockerr图像来运行一些其他命令,等等使用5个不同的图像。这一切都很混乱,所以相反,我意识到我必须弄清楚如何创建我的ONE docker图像,并将其作为命令运行,所以我修改了上面的ENTRYPOINT,然后docker构建和docker将我的图像推送到谷歌。然后,我有一个带有单步图像命令的cloudbuild.yaml要运行。

通过这种方式,我们可以在刚刚运行的docker映像中轻松调整构建。现在,这比谷歌设置的复杂模型简单得多,因为它变成了基本的在容器中进行构建,不管你喜欢什么,在一个docker映像中安装你需要的任何工具。

也就是说,当心谷歌的快速启动,老实说,恕我直言,与CircleCI和其他系统相比,它确实过于复杂了。(当然,这只是一个观点,每个人都有自己的观点)。

 类似资料:
  • 问题内容: 我尝试在构建映像的同时使用Docker安装软件,然后得到了。 我使用的Dockerfile 有没有一种方法可以在Dockerfile中运行docker命令来创建映像? 问题答案: 您的问题不在于Docker命令,因为它在错误消息中表示您的Docker守护程序未运行,或者由于某些配置问题而无法连接到它。 您刚刚安装了Docker吗?您是否完成了《安装指南》中的所有步骤? 您可以使用或来测

  • 我试图遵循使用spring boot fat Jar使用Docker启动和运行的教程。我已经安装了一切,可以从Docker Hub运行Hello World示例。 我已经使用名为的Maven创建了fat jar,并使用以下内容作为我的dokerfile.docker: 如何从一个胖罐子构建docker映像?

  • 我正在尝试创建一个管道,使用JIB(通过Maven插件)创建docker图像,并将其推送到我的Gitlab注册表。 当我登录到docker注册表时,这在本地运行良好。 说我有一个。gitlab ci。yml看起来像: 现在我在管道被触发时得到一个异常 我假设我得到了这个错误,因为我还没有运行docker login-u[用户名]-p[密码/令牌] 我怎么会需要一个.gitlab-ci.yml,它使

  • 问题内容: 我正在尝试 使用 官方链接中提到 的API 构建 docker镜像 。 但是我无法获得文件中的内容:示例请求: 有几件事使我感到困惑, 1)在哪里提到 Dockerfile 的 路径 ? 2)“归档文件必须在归档文件的根目录中包含一个构建指令文件,通常称为Dockerfile。” 来自docker docs的此声明,这里的困惑 是存档的根 是 什么 ? 3) 构建图像的详细命令 是什么

  • 我正在尝试基于ruby: 3.0构建Docker映像。在Dockerfile中,运行“RUN bundle install”时,开始安装依赖项,直到显示错误: Gem::Ext::BuildError:错误:未能生成Gem本机扩展#10 34.20 34.20当前目录:/usr/local/bundle/gems/tiny_tds-2.1.5/ext/tiny-tds#10 34.2/usr/lo