【发布时间】:2018-11-21 04:21:59
【问题描述】:
我正在尝试将源打包为图像并由 Google Cloud Build 构建
这是我的 docker 文件:
FROM php
RUN cd ~ && curl -sS https://getcomposer.org/installer -o composer-setup.php
RUN cd ~ && php composer-setup.php --install-dir=/usr/local/bin --filename=composer
ADD ./mysource /app
WORKDIR /app
RUN cd /app && composer update --ignore-platform-reqs && composer install --ignore-platform-reqs
RUN cd /app && composer require laravel/horizon && php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
结果构建失败并且日志显示: (最新日志在顶部)
Step #1:
ERROR: build step 1 "gcr.io/cloud-builders/docker" failed: exit status 1
Finished Step #1
Step #1: The command '/bin/sh -c cd /app && composer update --ignore-platform-reqs && composer install --ignore-platform-reqs' returned a non-zero code: 1
Step #1: Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
Step #1: SQLSTATE[HY000] [2002] Connection refused
Step #1: In PDOConnection.php line 46:
Step #1: SQLSTATE[HY000] [2002] Connection refused
Step #1: In PDOConnection.php line 50:
Step #1: chema.tables where table_schema = forge and table_name = explorers)
Step #1: SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_s
Step #1:
Step #1: In Connection.php line 664:
Step #1:
Step #1: > @php artisan package:discover
Step #1: > Illuminate\Foundation\ComposerScripts::postAutoloadDump
Step #1: Generating optimized autoload files
我正在寻找类似services in bitbucket pipeline 的东西,您可以在构建过程中使用它。我还提到了here 提出的问题,但这些回复并没有解决我的问题。
欣赏任何想法
【问题讨论】:
-
你的 laravel-project/.env 设置怎么样?使用正确的数据库连接参数检查和更新这些设置可能是值得的。 laradock/.env 文件中是否配置了用户名和密码?
-
是的,.env 配置良好,我很确定如果云构建,这与“步骤”之间的联系有关。因为我也尝试通过最简单的 mysql cli 连接到上一步,到 localhost/127.0.0.1/0.0.0.0/ 都失败了
-
关于我的云构建 yaml 的更多详细信息 Step1:gcr.io/cloud-builders/docker arg: run --name=mysql -p 3306:3306 --env MYSQL_USER=forge --env MYSQL_PASSWORD= forge --env MYSQL_DATABASE=forge --env MYSQL_ROOT_PASSWORD=secret --env MYSQL_ROOT_HOST=% -d circleci/mysql Step2:gcr.io/cloud-builders/docker arg:build -t <..... dockerfile> 在 RUN mysql -u root --password=root -h 127.0.0.1 --port=3306 --database=forge 等 docker 文件中尝试连接
-
连接参数是否正确?您需要手动调整它们,以促进构建成功。
标签: build google-cloud-platform google-cloud-build