gitlab ci:“compose”不是 docker 命令

问题描述 投票:0回答:1

我需要在 gitlab CI 中使用 docker compose,但出现以下错误:“‘compose’不是 docker 命令。”。我还检查了我的服务器和安装的 Docker Compose 版本 v2.26.0。

顺便说一句,当我使用旧语法“docker-compose”并调用 docker-compose version 时,CI 返回“docker-compose version 1.25.0”。

我的 .gitlab-ci.yml 文件

deploy:
  image: docker:latest

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

Docker 版本日志:

Client:
 Version:           24.0.5
 API version:       1.43
 Go version:        go1.20.3
 Git commit:        24.0.5-0ubuntu1~20.04.1
 Built:             Mon Aug 21 19:50:14 2023
 OS/Arch:           linux/amd64
 Context:           default

Server:
 Engine:
  Version:          24.0.5
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.3
  Git commit:       24.0.5-0ubuntu1~20.04.1
  Built:            Mon Aug 21 19:50:14 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.2
  GitCommit:        
 runc:
  Version:          1.1.7-0ubuntu1~20.04.2
  GitCommit:        
 docker-init:
  Version:          0.19.0
  GitCommit:        

也许你知道为什么会发生这种情况?

docker docker-compose gitlab continuous-integration
1个回答
0
投票

所以,我发现了我的错误。

  1. 首先应通过以下命令创建 gitlab-runner:
sudo gitlab-runner register -n \
  --url "https://gitlab.com/" \
  --registration-token REGISTRATION_TOKEN \
  --executor docker \
  --description "My Docker Runner" \
  --docker-image "docker:24.0.5" \
  --docker-privileged \
  --docker-volumes "/certs/client"
  1. gitlab-ci.yml 应该如下所示:
deploy:
  image: docker:24.0.5

  services:
    - docker:24.0.5-dind

  before_script:
    - df
    - cat /etc/resolv.conf
    - cat /etc/hosts
    - docker version

  script:
    - docker info
© www.soinside.com 2019 - 2024. All rights reserved.