GitHub user lhotari edited a comment on the discussion: Installing a custom 
sink connector

Another solution would be to build a custom docker image with required 
connectors in the image

1. Save this to a directory as `Dockerfile`

```Dockerfile
# example usage: docker buildx build --platform linux/amd64 --build-arg 
PULSAR_IMAGE=apachepulsar/pulsar:4.0.3 -t myorg/pulsar:4.0.3-custom .
ARG PULSAR_IMAGE=apachepulsar/pulsar:latest
FROM ${PULSAR_IMAGE} AS pulsar
COPY /connectors /pulsar/connectors
```

2. Create `connectors` and download the connectors there.

```
mkdir connectors
cd connectors
curl -LO 
https://github.com/streamnative/pulsar-io-lakehouse/releases/download/v4.0.3.1/pulsar-io-lakehouse-4.0.3.1.nar
```

3. Build and push the image

```
docker buildx build --push --platform linux/amd64 --build-arg 
PULSAR_IMAGE=apachepulsar/pulsar:4.0.3 -t myorg/pulsar:4.0.3-custom .
```
(remove `--push` if you just want to test locally)

If you need arm64 support, add `--platform linux/amd64,linux/arm64`. To avoid 
issues, pass `--push` to the command line when building multi-platform images 
since otherwise you might not get a multi-platform image in your repository.
example of building and pushing multi-platform image:
```
docker buildx build --push --platform linux/amd64,linux/arm64 --build-arg 
PULSAR_IMAGE=apachepulsar/pulsar:4.0.3 -t myorg/pulsar:4.0.3-custom .
```

And finally use this image in Apache Pulsar Helm chart as the default image

```yaml
defaultPulsarImageRepository: myorg/pulsar
defaultPulsarImageTag: 4.0.3-custom
```

It also replaces `apachepulsar/pulsar-all` with much smaller 
`apachepulsar/pulsar` image. If you need all connectors, you can build a custom 
image based on `apachepulsar/pulsar-all`.

GitHub link: 
https://github.com/apache/pulsar/discussions/24075#discussioncomment-12487275

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org

Reply via email to