88 lines
2.2 KiB
Markdown
88 lines
2.2 KiB
Markdown
# gVisor Website
|
|
|
|
This repository holds the content for the gVisor website. It uses
|
|
[hugo](https://gohugo.io/) to generate the website and
|
|
[Docsy](https://github.com/google/docsy) as the theme.
|
|
|
|
## Requirements
|
|
|
|
Building the website requires the extended version of
|
|
[hugo](https://gohugo.io/) and [node.js](https://nodejs.org/) in order to
|
|
generate CSS files. Please install them before building.
|
|
|
|
- Node.js >= 10.15.0 LTS
|
|
- hugo extended >= v0.53
|
|
|
|
## Building
|
|
|
|
Build the website using `make`:
|
|
|
|
```
|
|
make
|
|
```
|
|
|
|
This will output the App Engine application code, configuration, and html and
|
|
CSS into the `public/` directory.
|
|
|
|
## Testing
|
|
|
|
You can use the hugo web server for testing. This will start a webserver that
|
|
will rebuild the site when you make content changes:
|
|
|
|
```
|
|
make server
|
|
```
|
|
|
|
Access the site at http://localhost:8080
|
|
|
|
## Deploy
|
|
|
|
Deploying the website to App Engine requires gcloud. First create a configuration:
|
|
|
|
```
|
|
{
|
|
gcloud config configurations create gvisor-website
|
|
gcloud config set project gvisor-website
|
|
}
|
|
```
|
|
|
|
Deploy the application:
|
|
|
|
```
|
|
make deploy
|
|
```
|
|
|
|
## Editing documentation
|
|
|
|
Documentation is located in the [content/docs/](content/docs/) directory.
|
|
Documentation is written in markdown with hugo extensions. Please read more
|
|
about [content management](https://gohugo.io/categories/content-management) in
|
|
the hugo documentation.
|
|
|
|
## Submit a Build
|
|
|
|
Normally a build is triggered when you push to the gvisor-website repository.
|
|
However, you can submit a build to Cloud Build manually.
|
|
|
|
As one-time setup, enable the App Engine Admin API, and set IAM roles for the [Cloud Build service
|
|
account](https://cloud.google.com/cloud-build/docs/securing-builds/set-service-account-permissions).
|
|
|
|
```
|
|
{
|
|
PROJECT_NUMBER=$(gcloud projects list --filter=projectId:gvisor-website --format="value(projectNumber)")
|
|
gcloud services enable appengine.googleapis.com
|
|
gcloud projects add-iam-policy-binding gvisor-website \
|
|
--member=serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com \
|
|
--role='roles/appengine.deployer'
|
|
gcloud projects add-iam-policy-binding gvisor-website \
|
|
--member=serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com \
|
|
--role='roles/appengine.serviceAdmin'
|
|
}
|
|
```
|
|
|
|
Submit the build.
|
|
|
|
```
|
|
make cloud-build
|
|
```
|