首页 > 解决方案 > 使用 gitlab-ci.yml 构建 PHP 镜像

问题描述

当我将代码推送到 gitlab.com 时,我想构建一个 Docker 映像。

这工作正常,在一定程度上......

gitlab-ci.yml (1)

image: php:7.4

cache:
  paths:
    - vendor/

before_script:
  - echo "Prep me"
  - apt-get update
  - apt-get install -y --no-install-recommends zip unzip gnupg2
  - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
  - php composer-setup.php
  - php -r "unlink('composer-setup.php');"
  - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
  - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

build:
  script:
    - echo "Build me"
    - composer install
    - yarn install

但是没有任何东西被添加到 Gitlab 注册表中。因此,我尝试将其添加到构建中,但 docker 不是公认的命令。

gitlab-ci.yml (2)

    - docker pull $CI_REGISTRY_IMAGE:latest || true
    - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
    - docker push $CI_REGISTRY_IMAGE:latest

我原以为立即启动 PHP docker 映像应该很简单,但这似乎很困难——除非我遗漏了什么?

标签: phpdockergitlabcomposer-phpgitlab-ci

解决方案


原因是你的 GitLab CI 的基础镜像现在是php:7.4,它没有 docker 命令。

为了实现运行 docker 命令,您需要使用类似的图像

image: docker:19.03.8

推荐阅读