我已经开始了我的laravel项目,我正在尝试对代码进行单元测试以及使用jankins测试数据库连接性,这是我的 Jenkinsfile 以及我的配置方式:
pipeline {
agent {
dockerfile true
}
stages {
stage("Build") {
steps {
sh 'php --version'
sh 'composer install'
sh 'composer --version'
sh 'cp .env.example .env'
sh 'php artisan key:generate'
}
}
stage("Unit test") {
steps {
script {
docker.image('mysql:5.7').withRun('-e "MYSQL_DATABASE=testing" -e "MYSQL_ROOT_PASSWORD=root"') { c ->
docker.image('mysql:5').inside("--link ${c.id}:db") {
/* Wait until mysql service is up */
sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done'
}
sh "./vendor/bin/phpunit"
}
}
}
}
}
}
单元测试阶段始终会出错并且无法完成,请问为什么?
所有由Docker配置的项目。
答案 0 :(得分:0)
尝试将其添加到您的dockerfile中:“ apt-get install -y libltdl7”。或者只是将其他“ libltdl7”添加到您现有的安装语句中。
我已经更新了您提供的dockerfile(未经测试):
FROM php:7.3.1-fpm-stretch
RUN apt-get update \
&& apt-get install -y libmemcached-dev zlib1g-dev libssl-dev wget curl vim libltdl7
RUN apt-get install -y git zip unzip jpegoptim optipng pngquant gifsicle
RUN apt-get update \
&& apt-get install -y libpng-dev libjpeg62-turbo-dev libfreetype6-dev
RUN docker-php-ext-install gd mbstring bcmath pdo pdo_mysql
WORKDIR /usr/local/etc/php/conf.d/
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
WORKDIR /var/www/html/