如何解决如何在云构建过程中创建环境文件
如何在Google Cloud Build CI流程中将环境变量传递给Gatsby构建任务?使用替换变量,我可以使变量在cloudbuild.json
文件中可用,但随后需要在构建任务中使用这些变量。
Gatsby使用.env.production
文件来保存环境变量,然后可以使用dotenv
包使用这些变量。在我的gatsby-config.js
文件的顶部,将环境文件的路径设置如下:
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,})
再进一步,我使用这些变量为Firebase配置gatsby-plugin-firebase
插件。鉴于我需要一个环境文件,因此我尝试在运行构建步骤之前在cloudbuild.json
文件中创建一个文件。
{
"steps": [
{
"name": "ubuntu","args": ["echo","FIREBASE_API_KEY=$_FIREBASE_API_KEY\\nFIREBASE_AUTH_DOMAIN=$_FIREBASE_AUTH_DOMAIN\\nFIREBASE_DATABASE_URL=$_FIREBASE_DATABASE_URL\\nFIREBASE_PROJECT_ID=$_FIREBASE_PROJECT_ID\\nFIREBASE_STORAGE_BUCKET=$_FIREBASE_STORAGE_BUCKET\\nFIREBASE_MESSAGING_SENDER_ID=$_FIREBASE_MESSAGING_SENDER_ID\\nFIREBASE_APP_ID=$_FIREBASE_APP_ID\\nFIREBASE_MEASUREMENT_ID=$_FIREBASE_MEASUREMENT_ID",">",".env.production"]
},...More steps here...
{
"name": "node:14.4.0","entrypoint": "npm","args": ["run","build"]
},{
"name": "node:14.4.0","entrypoint": "./node_modules/.bin/firebase","args": ["deploy","--project","$PROJECT_ID","--token","$_FIREBASE_TOKEN"]
}
进入构建步骤时,.env.production
文件不存在,我认为这是因为它是在ubuntu容器中创建的。如何创建可以在构建步骤中读取的环境文件。还是有更好的传递变量的方法?
谢谢
解决方法
您的第一步是错误的,您仅回显该命令,而不执行它。像这样改变它
{
"steps": [
{
"name": "ubuntu","entrypoint": "bash","args": ["-c","echo FIREBASE_API_KEY=$_FIREBASE_API_KEY\\nFIREBASE_AUTH_DOMAIN=$_FIREBASE_AUTH_DOMAIN\\nFIREBASE_DATABASE_URL=$_FIREBASE_DATABASE_URL\\nFIREBASE_PROJECT_ID=$_FIREBASE_PROJECT_ID\\nFIREBASE_STORAGE_BUCKET=$_FIREBASE_STORAGE_BUCKET\\nFIREBASE_MESSAGING_SENDER_ID=$_FIREBASE_MESSAGING_SENDER_ID\\nFIREBASE_APP_ID=$_FIREBASE_APP_ID\\nFIREBASE_MEASUREMENT_ID=$_FIREBASE_MEASUREMENT_ID > .env.production"]
},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。