You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docker-images/README.md
+21-20Lines changed: 21 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -76,21 +76,9 @@ Here are some convenient commands:
76
76
77
77
Note:
78
78
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.
80
79
-_This is the preferred and recommended method of building Docker files for all JVM-based connectors._
81
80
- By default, this builds an image matching your local architecture (`arm64` on M-series Macs).
82
81
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:
- 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.
94
82
### `airbyte-cdk`-based Builds
95
83
96
84
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
101
89
```
102
90
103
91
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
+
105
93
- 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.
107
95
108
96
## GitHub Actions Workflow for Building and Publishing Images
109
97
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).
111
99
112
100
### Using the Workflow
113
101
@@ -118,17 +106,30 @@ A GitHub Actions workflow is now available for manually building and publishing
118
106
-**Image Type**: `base` (currently only base images are supported)
119
107
-**Tag or Version Number**: The tag to apply to the image (e.g., `dev-test` or `2.0.2`)
120
108
-**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**.
125
126
126
127
### Key Features
127
128
128
129
-**Multi-Architecture Support**: Builds images for both `linux/amd64` and `linux/arm64` architectures
129
130
-**Vulnerability Scanning**: Automatically scans images for security vulnerabilities
130
131
-**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)
0 commit comments