Skip to content

Commit 37e238a

Browse files
docs(docker-images): scrub stale content, clarify DockerHub opt-in publishing (#74018)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent 59711e2 commit 37e238a

1 file changed

Lines changed: 21 additions & 20 deletions

File tree

docker-images/README.md

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -76,21 +76,9 @@ Here are some convenient commands:
7676

7777
Note:
7878

79-
- While connectors are being migrating from `airbyte-ci` to the new Dockerfile images here in this directory, some connectors will build using the legacy `airbyte-ci` method and some will build using the new `Dockerfile`-based method.
8079
- _This is the preferred and recommended method of building Docker files for all JVM-based connectors._
8180
- By default, this builds an image matching your local architecture (`arm64` on M-series Macs).
8281

83-
### `airbyte-ci`-based Image Builds
84-
85-
We are in the process of phasing this out, but for now it is still the official method of building connector images:
86-
87-
`airbyte-ci connectors --connector-name=source-foo build`
88-
89-
Note:
90-
91-
- This method is _not_ using the Dockerfile images in this directory. Instead it is using custom Dagger code, which is currently at its end-of-life (EOL) and will no longer be supported going forward.
92-
- You need to be careful about which platform(s) you are building for in this method. Use `--help` for info on how to build `arm64` images vs `amd64` images, etc.
93-
- This is not guaranteed to work for JVM connectors that have migrated over to the new gradle flow. Gradle commands are recommended instead.
9482
### `airbyte-cdk`-based Builds
9583

9684
This new method is faster, easier to type, and builds using the Dockerfiles in this directory, using the connector directory that is active:
@@ -101,13 +89,13 @@ airbyte-cdk image build
10189
```
10290

10391
Note:
104-
- Until `airybte-ci` is phased out, the images created this way will not exactly match the ones that would be built by the connector publish flow.
92+
10593
- This method will automatically build arm64 and amd64 images - defaulting your `dev` image to `arm64` (since Mac M-series laptops are standard at Airbyte), while still providing an `amd64` based image, which you will need if uploading to `amd64`-based Platform instances.
106-
- All connector types are supported using this method, since the code is only thin wrapper around the `Dockerfile`-based build process.
94+
- All connector types are supported using this method, since the code is only a thin wrapper around the `Dockerfile`-based build process.
10795

10896
## GitHub Actions Workflow for Building and Publishing Images
10997

110-
A GitHub Actions workflow is now available for manually building and publishing connector base images:
98+
A GitHub Actions workflow is available for manually building and publishing connector base images. **This workflow is manual-only (`workflow_dispatch`) and does not run automatically on merge to `master`.** Publishing to DockerHub requires explicit opt-in (see below).
11199

112100
### Using the Workflow
113101

@@ -118,17 +106,30 @@ A GitHub Actions workflow is now available for manually building and publishing
118106
- **Image Type**: `base` (currently only base images are supported)
119107
- **Tag or Version Number**: The tag to apply to the image (e.g., `dev-test` or `2.0.2`)
120108
- **Repository Root**: Choose between:
121-
- `docker.io/airbyte` for production images
122-
- `ghcr.io/airbytehq` for testing
123-
- **Dry Run**: If enabled, builds the image but doesn't publish it
124-
- **Require Security Check**: If enabled, fails the workflow if HIGH/CRITICAL vulnerabilities are found
109+
- `ghcr.io/airbytehq` for testing (this is the **default**)
110+
- `docker.io/airbyte` for production images on DockerHub
111+
- **Dry Run**: If enabled, builds the image but doesn't publish it (**enabled by default**)
112+
- **Require Security Check**: If enabled, fails the workflow if HIGH/CRITICAL vulnerabilities are found (enabled by default)
113+
114+
### Publishing to DockerHub
115+
116+
> **DockerHub publishing is opt-in.** The workflow defaults are intentionally safe: images are sent to GHCR with dry-run enabled. To actually publish a production image to DockerHub, you must change **both** of the following:
117+
>
118+
> 1. Set **Repository Root** to `docker.io/airbyte`
119+
> 2. Uncheck **Dry Run**
120+
>
121+
> The `docker.io/airbyte` option requires a GitHub Environment approval (`hub.docker.com/r/airbyte`), providing an additional safeguard.
122+
123+
### Automated CI Testing (Pull Requests)
124+
125+
A separate workflow ([Dockerfile Tests](https://github.com/airbytehq/airbyte/actions/workflows/docker-connector-base-image-tests.yml)) runs automatically on pull requests that modify Dockerfiles in this directory. It builds and tests images against GHCR but **does not publish to DockerHub**.
125126

126127
### Key Features
127128

128129
- **Multi-Architecture Support**: Builds images for both `linux/amd64` and `linux/arm64` architectures
129130
- **Vulnerability Scanning**: Automatically scans images for security vulnerabilities
130131
- **Registry Options**: Supports publishing to either DockerHub or GitHub Container Registry
131-
- **Dry-Run Mode**: Test builds without publishing
132+
- **Dry-Run Mode**: Test builds without publishing (default)
132133

133134
## Common Build Args
134135

0 commit comments

Comments
 (0)