pulumi / pulumi-docker-containers

Definitions for official Pulumi Docker images.
Apache License 2.0
18 stars 22 forks source link

ARM and ARM64 docker containers #63

Open naorlivne opened 2 years ago

naorlivne commented 2 years ago

Hello!

Issue details

With most cloud providers now having ARM/ARM64 based machines it would be helpful to have the Docker containers of Pulumi of said architecture to be able to run on those machines (Ideally with a multi-arch container image so the same image will run on all architectures)

jkodroff commented 2 years ago

@naorlivne Good news! We just started publishing multi-arch (AMD64 and ARM64) builds for most of our Docker images! We do not currently have an ARM64 build for the pulumi/pulumi image, but we don't recommend this image for production use because the image is so large (it contains every language/platform Pulumi supports). Our images are all published to both Docker Hub and AWS Elastic Container Registry.

Does this meet your requirements?

naorlivne commented 2 years ago

Hi @jkodroff, my hope was creating a generic Drone plugin to run pulumi out off to support all 3 (AMD/ARM/ARM64) & seeing how I wouldn't know which language the enduser would use I was planning as using pulumi/pulumi as the base image.

So basically there's 2 requests here:

  1. add multi-arch to pulumi/pulumi image
  2. add ARM to multi-arch images
jkodroff commented 2 years ago

@naorlivne

  1. Adding multi-arch to pulumi/pulumi is gonna be tough (but not impossible) due to the large number of packages in the image, some of which are tricky to install. (You may notice that some of our multi-arch single-SDK images use e.g. python3.9:slim as a base image to avoid this pain.)

    We'll definitely take this request under consideration for our future planning. In the meanwhile, we would welcome a PR.

  2. I'm not exactly sure what the ARM platform is, although I see it available on images in Docker Hub like Debian. Is it equivalent to linux/arm/v7or something like that? (I'm not as familiar with the particulars of platform strings as I would like.) We're happy to take this one under consideration like point 1 above, but of course the difficulty of the work depends on the availability of our dependencies on the target platform. If we add this to our existing Debian-based, single-SDK images, is this helpful to you?
  3. I'm not familiar with Drone. Could you send me a link? Always interested in learning more about how our Docker images are being used in the community.

Thanks!

naorlivne commented 2 years ago

@jkodroff

  1. I understand completely
  2. Basically yes, ARM is a 32bit architecture versus 64bit used in ARM64, because ARM is often used in IoT devices it's still a common architecture of it.
  3. https://www.drone.io/ - It's my favorite CI/CD tool, the reason for this request is I've created a plugin for it to be able to use it to run Pulumi to automate IaC, I plan on raising a request to have it added to https://www.pulumi.com/docs/guides/continuous-delivery/ just as soon as I finish adding some smoke-tests to it & figure out to raise a PR to Pulumi docs