如何解决在CloudBuild中针对AppEngine进行Laravel迁移
我们有一个在应用引擎中运行的Laravel项目。 我们通过CloudBuild部署了一切,效果很好。 以前我们是手动进行数据库迁移的,但现在我想将其包括到CloudBuild中。
在CloudBuild中,我找不到任何能够进行数据库迁移的php软件包。
当前cloudbuild.yaml是以下代码:
steps:
#Install
- name: 'gcr.io/cloud-builders/npm'
args: ['install']
#Build
- name: 'gcr.io/cloud-builders/npm'
args: ['run','prod']
#Deploy Test
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app','deploy','app.yaml']
任何提示在部署代码库后如何进行 php artisan迁移?
解决方法
您可以尝试使用Cloud SQL Proxy和Docker Compose来实现迁移。
首先,您需要为Cloud Build设置docker-compose,然后创建一个服务帐户。
您的docker-compose文件应如下所示:
version: '3.7'
services:
app:
build:
context: .
dockerfile: Dockerfile
restart: "no"
links:
- database
tty: true
volumes:
- app:/var/www/html
env_file:
- ./.env
depends_on:
- database
database:
image: gcr.io/cloudsql-docker/gce-proxy
restart: on-failure
command:
- "/cloud_sql_proxy"
- "-instances=<INSTANCE_CONNECTION_NAME>=tcp:0.0.0.0:3306"
- "-credential_file=/config/sql_proxy.json"
volumes:
- ./sql_proxy.json:/config/sql_proxy.json:ro
volumes:
app:
您的cloudbuild.yaml文件应如下所示:
- name: 'gcr.io/$PROJECT_ID/docker-compose'
id: Compose-build-cloudProxy
args: ['build']
- name: 'gcr.io/$PROJECT_ID/docker-compose'
id: Compose-up-cloudProxy
args: ['up','--timeout','1','--no-build','-d']
- name: 'bash'
id: Warm-up-cloudProxy
args: ['sleep','5s']
- name: 'gcr.io/cloud-builders/docker'
id: Artisan-Migrate
args: ['exec','-i','workspace_app_1','php','artisan','migrate']
- name: 'gcr.io/$PROJECT_ID/docker-compose'
id: Compose-down-cloudProxy
args: ['down','-v']
您还可以检查以下link,其中包含一些强大的php工具,这些工具可能会为php artisan migrate
之类的过程提供帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。