moov-io / watchman

AML/CTF/KYC/OFAC Search of global watchlist and sanctions
https://moov-io.github.io/watchman/
Apache License 2.0
330 stars 87 forks source link

Missing ARM 64 docker image #553

Open kaplan-shaked opened 1 month ago

kaplan-shaked commented 1 month ago

Watchman Version: latest

What were you trying to do? Trying to run moov/watchman docker image on ARM64 Kubernetes node

marlapativ commented 1 month ago

@adamdecaf I'd like to work on this issue.

Could you help me out with what all architectures that you'd like to support? And I'd be using a docker buildx if that's fine?

adamdecaf commented 3 weeks ago

Yea go for it. We need binaries for ARM as well. Windows,Mac,Linux amd64 and ARM

marlapativ commented 3 weeks ago

@adamdecaf some more questions:

Can I update the current docker release pipeline(github action) to use docker build-push-action? https://github.com/docker/build-push-action

It also has support to push to multiple registries https://docs.docker.com/build/ci/github-actions/push-multi-registries/

This would mean that commands in makefile would no longer be used in the current release pipeline.

adamdecaf commented 3 weeks ago

Yea. I like having the docker commands in makefiles so they can be tested locally, but if those actions are simple we can try them.

marlapativ commented 3 weeks ago

@adamdecaf, I'm sorry for taking sometime to analyze. Couple more questions:

  1. From what I see in the code, make docker-openshift(docker image created using Dockerfile-openshift) pushes the image only to quay.io which. Technically quay.io contains your custom openshift usage although dockerhub contains the official Dockerfile image. Is that correct?

  2. Do the following images also have to be release in multiple architectures:

    • [x] Dockerfile (make docker-hub)
    • [ ] Dockerfile-static (make docker-static)
    • [ ] Dockerfile-openshift (make docker-openshift)
    • [ ] cmd/watchmantest/Dockerfile(make docker-watchmantest)
  3. The following architectures are supported. Should I add all? x86-64 (linux/amd64, linux/i386) ARM architectures (linux/arm/v5, linux/arm/v6, linux/arm/v7, linux/arm64)

The popular being: linux/amd64, linux/arm/v7, linux/arm64 Is it okay if I support only these 3?