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

[PROF-9368] Revert Ruby 2.1/2.2/2.3 CI images to older Debian to support mysql gem #3542

Merged
merged 1 commit into from
Mar 20, 2024

Commits on Mar 20, 2024

  1. [PROF-9368] Revert Ruby 2.1/2.2/2.3 CI images to older Debian to supp…

    …ort mysql gem
    
    **What does this PR do?**
    
    This PR is a slightly tweaked revert of
    #3534 .
    
    TL;DR after updating our Ruby 2.1/2.2/2.3 images to a newer debian,
    we discovered that some of our CI testing requires the `mysql` gem,
    which breaks on newer Debian versions (due to a newer
    libmysqlclient/libmariadb).
    
    With these reverts, I was able to locally rebuild the images and install
    both mysql and nokogiri:
    
    ```
    $ docker run -ti -v `pwd`:/working ivoanjo/docker-library:ddtrace_rb_2_3_8_testing_t6  /bin/bash
    root@255fe2dc2374:/app# ruby -v
    ruby 2.3.8p459 (2018-10-18 revision 65136) [x86_64-linux]
    root@255fe2dc2374:/app# docker-compose -v
    docker-compose version 1.8.0, build unknown
    root@255fe2dc2374:/app# bundle -v
    Bundler version 1.17.3
    root@255fe2dc2374:/app# gem install mysql
    Fetching mysql-2.9.1.gem
    Building native extensions. This could take a while...
    Successfully installed mysql-2.9.1
    1 gem installed
    root@255fe2dc2374:/app# gem install nokogiri -v '= 1.10.10'
    Fetching nokogiri-1.10.10.gem
    Fetching mini_portile2-2.4.0.gem
    Successfully installed mini_portile2-2.4.0
    Building native extensions. This could take a while...
    Successfully installed nokogiri-1.10.10
    2 gems installed
    ```
    
    I was able to reproduce similar successful output on 2.1 and 2.2
    as well (using nokogiri 1.9.1; 1.10.10 requires 2.3).
    
    **Motivation:**
    
    **Additional Notes:**
    
    In the `Dockerfile` that #3534 initially changed there was a comment
    stating that we were installing `docker-compose 1.21` from
    stretch-backports, which confused me initially, since I couldn't
    install that version from backports.
    
    I checked an image build log from 2 months ago
    (https://github.com/DataDog/dd-trace-rb/actions/runs/7386478002/job/20093153619)
    and copied its image sha
    `ghcr.io/datadog/dd-trace-rb/ruby:2.3.8-dd@sha256:b940776f41a5993e728f813c92734eaa82070ba74626ad8d2768a0242de269b3`
    and got the same `docker-compose 1.8.0` I'm getting now:
    
    ```
    $ docker run -ti -v `pwd`:/working ghcr.io/datadog/dd-trace-rb/ruby:2.3.8-dd@sha256:b940776f41a5993e728f813c92734eaa82070ba74626ad8d2768a0242de269b3 /bin/bash
    root@23481c358c5b:/app# docker-compose -v
    docker-compose version 1.8.0, build unknown
    ```
    
    Unless I'm doing something wrong, either this comment was
    never correct OR somehow the package we were using got purged.
    
    Either way, it seems to me that this indicates we can still
    use this version, so let's move forward (and hope to really
    stop supporting these Rubies soon).
    
    **How to test the change?**
    
    Check CI builds for the images and/or build locally. Note that
    our overall CI is a bit undisposed with incorrect images, so I'm
    expecting red unrelated CI jobs that will only be fixed after we
    publish these new images.
    ivoanjo committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    2119ba1 View commit details
    Browse the repository at this point in the history