blob: ec866d269017d4c87f74d497c0fe6df24525d708 [file] [log] [blame] [view] [edit]
# 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
```