Laravel 5 在CI作业中生成和使用应用程序密钥时出现问题

Laravel 5 在CI作业中生成和使用应用程序密钥时出现问题,laravel-5,phpunit,gitlab-ci,gitlab-ci-runner,Laravel 5,Phpunit,Gitlab Ci,Gitlab Ci Runner,我正试图让一个带有单元测试的laravel管道工作。在我的CI作业中,我使用数据库凭据复制我的测试环境文件,并使用php artisan key:generate生成一个新的应用程序密钥。新密钥的设置没有任何问题,但phpunit测试引发此异常:RuntimeException:未指定应用程序加密密钥。 使用预配置的键,工作正常。甚至当我在工作中产生一个新的 对这种行为有什么看法吗?不得不说,我对CI还比较陌生 我是docker,是gitlab runner的执行者 我最初认为它是一些文件权限的

我正试图让一个带有单元测试的laravel管道工作。在我的CI作业中,我使用数据库凭据复制我的测试环境文件,并使用
php artisan key:generate
生成一个新的应用程序密钥。新密钥的设置没有任何问题,但phpunit测试引发此异常:
RuntimeException:未指定应用程序加密密钥。

使用预配置的键,工作正常。甚至当我在工作中产生一个新的

对这种行为有什么看法吗?不得不说,我对CI还比较陌生

我是docker,是gitlab runner的执行者

我最初认为它是一些文件权限的东西,但当它使用预配置的密钥时,应该是这样。所以我几乎一无所知。希望有人能帮助我。详情如下

以下是管道的输出:

Downloading artifacts for composer (262)...
Downloading artifacts from coordinator... ok        id=262 responseStatus=200 OK token=-A2VMuUf
$ cp .env.testing .env
$ php artisan key:generate
Application key set successfully.
./vendor/bin/phpunit --version
PHPUnit 7.5.13 by Sebastian Bergmann and contributors.

$ ./vendor/bin/phpunit -v -c ./phpunit.xml
PHPUnit 7.5.13 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.2.19 with Xdebug 2.7.2
Configuration: /builds/####/####/phpunit.xml

.E                                                                  2 / 2 (100%)

Time: 234 ms, Memory: 20.00 MB

There was 1 error:

1) Tests\Feature\ExampleTest::testBasicTest
RuntimeException: No application encryption key has been specified.

/builds/####/####/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:44
/builds/####/####/vendor/laravel/framework/src/Illuminate/Support/helpers.php:1124
/builds/####/####/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:48
/builds/####/####/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:24
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:787
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:667
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:615
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:767
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:925
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:853
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:818
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:667
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:615
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:767
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:215
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:354
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:170
/builds/####/####/tests/Feature/ExampleTest.php:16
工作目录中的文件列表:

drwxrwxrwx 14 root root   4096 Jul 23 11:47 .
drwxrwxrwx  4 root root   4096 Jun  6 09:20 ..
-rw-rw-rw-  1 root root    213 Jul 23 07:41 .editorconfig
-rw-r--r--  1 php  php     792 Jul 23 11:47 .env
-rw-rw-rw-  1 root root    739 Jul 23 07:41 .env.example
-rw-rw-rw-  1 root root    741 Jul 23 11:43 .env.testing
drwxrwxrwx  6 root root   4096 Jul 23 11:47 .git
-rw-rw-rw-  1 root root    111 Jun  6 09:20 .gitattributes
-rw-rw-rw-  1 root root    165 Jul 23 07:41 .gitignore
-rw-rw-rw-  1 root root   2121 Jul 23 11:46 .gitlab-ci.yml
-rw-rw-rw-  1 root root   1255 Jul 23 07:41 .php_cs
-rw-rw-rw-  1 root root     15 Jul 23 07:41 .prettierignore
-rw-rw-rw-  1 root root    120 Jul 23 07:41 .prettierrc
-rw-rw-rw-  1 root root    174 Jul 23 07:41 .styleci.yml
-rw-rw-rw-  1 root root    971 Jun 18 07:56 CONTRIBUTING.md
drwxrwxrwx  6 root root   4096 Jul 23 07:41 app
-rw-rw-rw-  1 root root   1686 Jun  6 09:20 artisan
drwxrwxrwx  3 root root   4096 Jul 23 07:41 bootstrap
-rw-rw-rw-  1 root root   1736 Jul 23 07:41 composer.json
-rw-rw-rw-  1 root root 186367 Jul 23 07:41 composer.lock
drwxrwxrwx  2 root root   4096 Jul 23 07:41 config
drwxrwxrwx  5 root root   4096 Jul 23 07:41 database
-rw-rw-rw-  1 root root 426220 Jul 23 07:41 package-lock.json
-rw-rw-rw-  1 root root   1304 Jul 23 07:41 package.json
-rw-rw-rw-  1 root root   1156 Jul 23 07:41 phpunit.xml
drwxrwxrwx  4 root root   4096 Jul 23 11:01 public
drwxrwxrwx  6 root root   4096 Jul 23 07:41 resources
drwxrwxrwx  2 root root   4096 Jul 23 07:41 routes
-rw-rw-rw-  1 root root    572 Jul 23 07:41 server.php
drwxrwxrwx  5 root root   4096 Jun  6 09:20 storage
drwxrwxrwx  4 root root   4096 Jul 23 07:41 tests
drwxr-xr-x 42 php  php    4096 Jul 23 11:46 vendor
-rw-rw-rw-  1 root root    538 Jul 23 07:41 webpack.mix.js
-rw-rw-rw-  1 root root 202971 Jul 23 07:41 yarn.lock
现有
.env
-文件的内容:

APP_NAME=####
APP_ENV=testing
APP_KEY=base64:W99w+5JYz8SVGf5sx17gmPR6uoNCtWiEVc+9qu8iGEg=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=####
DB_USERNAME=####
DB_PASSWORD=####

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

问题是phpunit会自动使用测试环境(APP_ENV必须正在测试),如果它存在的话

php artisan key:generate--env=testing
解决了问题

以防其他人遇到这个问题