| # Docker container for Owl Bot Postprocessor |
| |
| This container runs when Owl Bot Postprocessor runs on this google-cloud-java |
| monorepo. The Cloud Build in the repo-automation-bots GCP project publishes |
| `gcr.io/cloud-devrel-public-resources/owlbot-java-monorepo` image. |
| |
| Note that the split repositories (such as [googleapis/java-bigquery]( |
| https://github.com/googleapis/java-bigquery)) continue to use the |
| `gcr.io/cloud-devrel-public-resources/owlbot-java` image, maintained in |
| [googleapis/synthtool]( |
| https://github.com/googleapis/synthtool/tree/master/docker/owlbot/java) |
| repository. |
| |
| This separation allows us to focus on monorepo-specific postprocessor logic in |
| this `owlbot-java-monorepo` image, without interfering the split repositories. |
| |
| # Principles |
| |
| ## Thin Container |
| This docker container is "thin", meaning that we do not install the |
| postprocessor logic into the container. Rather, the container executes scripts |
| that live in the repository. |
| |
| This design allows us the template logic changes and affected file changes |
| within one pull request. No need to rebuild the postprocessor image. |
| |
| ## Secure by Cloud Build |
| |
| Executing the scripts within the container in Owl Bot's Cloud Build environment |
| ensures the secure runtime that only allows access to the repository |
| (no access to credentials). |
| |
| # How to Build |
| |
| You can build the container locally: |
| |
| ``` |
| ~/google-cloud-java$ docker build -f owl-bot-postprocessor/Dockerfile owl-bot-postprocessor |
| ``` |