With the new gcloud run deploy --source
feature, it’s a one-step process to both build your container and deploy it to a new service.
But depending on what service that is, some things might get ignored.
I ran into this today, trying out Next.js for the first time. In it’s deployment documentation, it says after running next build
it will generate files in a .next
folder.
The problem is that hidden folders like this are automatically ignored by Cloud Build, and so they don’t appear in the uploaded source code, and thus don’t appear in your image!
You can get around this by using the .gcloudignore
file to not exclude, but explicitly include files.
echo "\!.next/" >> .gcloudignore
This command will create a file called .gcloudignore
with the contents !.next/
, which will ensure any folder called .next
is uploaded when deploying.
Bonus feature: yes I’m deploying JavaScript static sites to Cloud Run. I’m doing this by including a simple little package.json
that will serve my files, and by having a package.json
the service is detected as being Nodejs in Cloud Buildpacks and so it all works:
{
"scripts": {
"start": "http-server"
},
"dependencies": {
"http-server": "*"
}
}