当前位置: 首页 > 面试题库 >

在.gitlab-ci.yml中运行docker-compose build

郭彬郁
2023-03-14
问题内容

我有一个.gitlab-ci.yml包含以下内容的文件:

image: docker:latest

services:
  - docker:dind

before_script:
  - docker info
  - docker-compose --version

buildJob:
  stage: build
  tags:
    - docker
  script:
    - docker-compose build

但是ci-log我收到消息:

$ docker-compose --version
/bin/sh: eval: line 46: docker-compose: not found

我究竟做错了什么?


问题答案:

编辑 我添加了另一个答案,为支持docker-compose的.gitlab-ci.yml配置提供了一个最小的示例。

docker-compose可以作为Python软件包安装,该软件包不随映像一起提供。您选择的映像甚至没有提供Python安装:

$ docker run --rm -it docker sh
/ # find / -iname "python"
/ #

寻找Python会得到空的结果。因此,您必须选择适合您需要的其他映像,并且理想情况下已安装docker-compose或手动创建一个。

您选择的docker镜像使用Alpine Linux。您可以将其用作自己的映像的基础,如果您不熟悉Alpine Linux,可以先尝试使用其他映像。

我遇到了同样的问题,并在公共GitHub存储库中创建了一个Dockerfile,并将其与我的Docker
Hub帐户关联,并选择了一个自动构建,以便在每次推送到GitHub存储库时构建我的映像。然后,您可以使用GitLab CI轻松访问自己的图像。



 类似资料:
  • 我试图在GitLab ci管道中运行curl--retry命令,但在管道中失败了,但当我尝试在其他地方运行它时,它工作正常。 我正在尝试检查我的url是否已启动,这将一直运行到我的url已启动,然后运行脚本的其余部分以配置我的应用程序 curl-Is-k--重试50--重试延迟0--重试https://{URL}-vvv 正在尝试127.0.1.1:8443 TCP_节点延迟设置 已连接到{url

  • 问题内容: 我正在按照以下说明进行操作:http : //doc.gitlab.com/omnibus/docker 但是http:// localhost是说。 这是我正在运行的命令(Ubuntu 14.04 LTS): 如果我重新运行,我得到以下信息: 它说…这是否意味着内部有问题? [编辑-添加日志] 即使手动创建后,它仍然无法启动。 问题答案: 将docker命令修改为以下内容可为我解决此

  • 问题内容: 我在android项目中使用docker作为GitLab CI运行器。在测试运行结束时,将测试结果保存在build目录下的xml和html中: 我想访问这些文件,但是文档中没有提到如何像那样装载卷。 问题答案: 我建议不要从主机为您的CI装入卷。如果确实需要,则必须相应地配置运行器()。如果使用的是运行程序,则永远不会知道要在哪个系统上执行特定的构建。 我认为更好的解决方案是将测试结果

  • 问题内容: 我们正在考虑将ci从jenkins迁移到gitlab。我们有几个项目具有相同的构建工作流程。现在,我们使用一个定义了管道的共享库,而项目内部的jenkinsfile仅调用在共享库中定义的定义实际管道的方法。因此,仅需在单个点上进行更改即可影响多个项目。 我想知道gitlab ci是否也可以做到?据我发现,无法在存储库外部定义gitlab- ci.yml。还有另一种定义管道并与几个项目共

  • Docker Gitlab 是提供 Gitlab 环境的 Docker 映像,可方便的在 Docker 容器中运行 Gitlab 系统。 5 秒内搞定一个 Gitlab 系统(不包括下载和启动时间): docker run --name='gitlab' -it --rm \-e 'GITLAB_PORT=10080' -e 'GITLAB_SSH_PORT=10022' \-p 10022:22

  • 我们有一个gitlab-ci运行器,它托管在服务器a下运行的docker容器上。现在,我们希望将gitlab-ci运行器配置为一个容器,以便在主机上执行命令。 我们尝试使用下面的命令将运行器注册为“shell”执行器,但它仍然试图只访问gitlab-ci运行器容器中的shell,而不是主机服务器shell。 sudo gitlab-runner注册 --非交互式 --URL“https://git