使用 gitlab-ci.yml 构建 PHP 图像
Build PHP image with gitlab-ci.yml
我想在将代码推送到 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 图像,但似乎很难 - 除非我遗漏了什么?
原因是你的 GitLab CI 现在的基础镜像是 php:7.4
,它没有 docker 命令。
为了实现 运行 docker 命令你需要使用像
这样的图像
image: docker:19.03.8
我想在将代码推送到 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 图像,但似乎很难 - 除非我遗漏了什么?
原因是你的 GitLab CI 现在的基础镜像是 php:7.4
,它没有 docker 命令。
为了实现 运行 docker 命令你需要使用像
这样的图像image: docker:19.03.8