Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(docker): Multi-arch Docker images, attempt two #2114

Merged
merged 4 commits into from
Mar 4, 2022
Merged

fix(docker): Multi-arch Docker images, attempt two #2114

merged 4 commits into from
Mar 4, 2022

Commits on Mar 4, 2022

  1. fix(docker): fix base image for multi-platform build (#2099)

    * Correct indentation of run commands
    
    * Split installation of packages into the ones needed at run time and build time
    
    This allows us to now repeat the packages which need to be uninstalled again by
    making use of a virtual package, which - when removed - removes the packages
    installed as a dependency of it.
    
    * Remove unnecessary `rm -rf /var/cache/apk/*` command
    
    It's no needed when `apt add` is run with the `--no-cache` option.
    
    * Add vertical spacing so it's clearer what is happening when
    
    * Test the downloaded binaries to make sure they work on the platform
    
    This can help find issues where binaries are downloaded for the wrong platform
    compared to the architecture the Docker image is built for.
    
    * Install dumb-init via apk
    
    It's available as a package for Alpine Linux in version 1.2.5 as well, which
    makes it easier to handle for the different architectures.
    
    * Get git-lfs binaries in the right architecture for the Docker image
    
    This makes use of the `TARGETPLATFORM` argument which automatically is
    populated by Docker BuildKit with a string such as "linux/amd64" when the image
    is being build for an x86_64 architecture.
    
    * Install gosu for the right architecture
    
    The `case` statement was taken from
    https://github.com/BretFisher/multi-platform-docker-build as a way of
    translating the platform name into what we needed for downloading gosu.
    Tenzer committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    45e6a1a View commit details
    Browse the repository at this point in the history
  2. fix(docker): fix installation of git-lfs in armv7 image (#2100)

    This uses a similar pattern than what is used for `GOSU_ARCH` to map the
    `TARGETPLATFORM` argument into the name of the architecture git-lfs use for
    their release binaries, as "linux/arm/v7" otherwise would be mapped into "v7"
    which is wrong.
    Tenzer committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    0646a8f View commit details
    Browse the repository at this point in the history
  3. fix(docker): download Terraform and conftest versions maching image a…

    …rchitecture (#2101)
    
    * Remove Terraform versions from Docker image which don't have all archs
    
    Terraform versions earlier than 0.11.15 does not have binaries available for
    both amd64, arm64 and armv7, so are being dropped as we can't install the older
    versions in all the architectures the Docker image is built for.
    
    * Download Terraform version depending on the architecture Docker image is for
    
    This avoids us having arm64 binaries for the ARM Docker images, which won't
    work.
    
    * Download arm64 conftest binaries for arm64 Docker image
    
    This doesn't fix the armv7 Docker image because conftest doesn't have a binary
    available for that, so it for now still downloads the x86_64 binary, which is
    likely to not work - but it's the same as it did before.
    Tenzer committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    bec07ec View commit details
    Browse the repository at this point in the history
  4. Correct path to dumb-init in docker-entrypoint.sh

    The path changed after dumb-init was switched to be installed via `apk` rather
    than downloaded directly as a binary.
    Tenzer committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    697ea17 View commit details
    Browse the repository at this point in the history