Docker 如何使用Codeception和Gitlab CI(持续集成)

Docker 如何使用Codeception和Gitlab CI(持续集成),docker,pipeline,gitlab-ci,codeception,Docker,Pipeline,Gitlab Ci,Codeception,我目前正在通过codeception手动运行验收测试。现在是时候做下一步了 我想在Gitlab中创建一个管道来自动运行验收测试 第一个问题是.gitlab-ci.yml,我不知道如何实现它 我按照本文档中的描述进行操作: 但我总是犯错误 最新错误如下: *错误:zip支持需要ZLIB。使用--with zlib dir=指定zlib include和library所在的前缀* 我尝试了docker hub的几张图片,但都没有成功 这是我当前的.gitlab-ci.yml: # Select w

我目前正在通过codeception手动运行验收测试。现在是时候做下一步了

我想在Gitlab中创建一个管道来自动运行验收测试

第一个问题是.gitlab-ci.yml,我不知道如何实现它

我按照本文档中的描述进行操作:

但我总是犯错误

最新错误如下:
*错误:zip支持需要ZLIB。使用--with zlib dir=指定zlib include和library所在的前缀*

我尝试了docker hub的几张图片,但都没有成功

这是我当前的.gitlab-ci.yml:


# Select what we should cache
cache:
  paths:
  - vendor/

services:
    - selenium/standalone-chrome:latest

before_script:

# Install git and unzip (composer will need them)
- apt-get update && apt-get install -qqy git unzip

#zip
- apt-get install -y zlib1g-dev
- apt-get update && apt-get install -y libzip-dev
- docker-php-ext-install zip

# Install composer
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Install all project dependencies
- composer install

#install node
- apt-get update && curl -sL https://deb.nodesource.com/setup_8.x | bash - && apt-get install -y build-essential nodejs
- npm init -y 
- npm install -g eslint --unsafe-perm=true --alow-root
- npm config set prefix ~/.local  
- PATH=~/.local/bin/:$PATH
- apt-get update -q -y
- apt-get --yes install libnss3
- apt-get --yes install libgconf-2-4

#install wget
- apt-get --yes install wget

#install gnupg2
- apt-get update && apt-get install -y gnupg2


# Install chrome
# Add key
- curl -sS -L https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
# Add repo
- echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list
- apt-get update -q -y
- apt-get install -y google-chrome-stable

- npm install chromedriver -g
- npm install https://gitlab.com/gitlab-org/gitlab-selenium-server.git -g
# The `&` at the end causes it to run in the background and not block the following commands

- nohup chromedriver --port=4444 --url-base=wd/hub &
- nohup gitlab-selenium-server &


# Test
test:
  script:
  - vendor/bin/codecept run --env chrome



您是否也尝试过安装zlib1g dev?
这个评论可能会有帮助,但我建议在安装php扩展之前先添加
apt install-y zlib1g dev
,看看这是否解决了问题。

另一个问题,我如何使用npm install,因为如果我想使用npm install,它会说找不到npm命令。我可以添加第二个映像(节点)来使用它吗?您可以简单地运行
apt get install-y nodejs
,并且您应该有npm可用。我个人更喜欢使用安装了docker和docker compose的shell Gitlab CI runner,这样我就可以完全控制执行此操作的实际实例,但同时,我可以简单地使用任何docker映像进行composer或npm安装,只需将我的项目装入容器并运行必要的命令即可。但是,它有时会带来权限问题,因此您需要正确配置实例。但是在您的情况下,您应该能够简单地安装nodejs并运行
npm i
just fineI used
apt get update&&apt get install-y nodejs
,但仍然会出现错误:npm命令未找到您可以用所做的更改更新gitlab-ci.yml文件吗?