From a93fb6f42eb9754b9d0c75ab682c597125df752d Mon Sep 17 00:00:00 2001 From: Tomasz Latusek Date: Mon, 1 Sep 2025 12:03:20 +0200 Subject: [PATCH 1/2] Add gRPC docker image for Ruby 3.4 --- .github/workflows/{grpc.yml => grpc-3.2.yml} | 0 .github/workflows/grpc-3.4.yml | 37 ++++++++++++++++++++ grpc/ruby-3.4/Dockerfile | 17 +++++++++ grpc/ruby-3.4/Gemfile | 3 ++ grpc/ruby-3.4/Gemfile.lock | 22 ++++++++++++ 5 files changed, 79 insertions(+) rename .github/workflows/{grpc.yml => grpc-3.2.yml} (100%) create mode 100644 .github/workflows/grpc-3.4.yml create mode 100644 grpc/ruby-3.4/Dockerfile create mode 100644 grpc/ruby-3.4/Gemfile create mode 100644 grpc/ruby-3.4/Gemfile.lock diff --git a/.github/workflows/grpc.yml b/.github/workflows/grpc-3.2.yml similarity index 100% rename from .github/workflows/grpc.yml rename to .github/workflows/grpc-3.2.yml diff --git a/.github/workflows/grpc-3.4.yml b/.github/workflows/grpc-3.4.yml new file mode 100644 index 0000000..9777240 --- /dev/null +++ b/.github/workflows/grpc-3.4.yml @@ -0,0 +1,37 @@ +name: "aws-lambda-ruby-grpc:3.4" + +on: + pull_request: + paths: + - "grpc/ruby-3.4/Dockerfile" + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up QEMU (for emulation) + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + driver: docker-container + driver-opts: image=moby/buildkit:master + + - name: Log in to Docker Hub Container Registry + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6 + with: + context: ./grpc/ruby-3.4/ + file: ./grpc/ruby-3.4/Dockerfile + push: true + platforms: linux/amd64,linux/arm64 + tags: ${{ secrets.DOCKER_HUB_USERNAME }}/aws-lambda-ruby-grpc:3.4 diff --git a/grpc/ruby-3.4/Dockerfile b/grpc/ruby-3.4/Dockerfile new file mode 100644 index 0000000..7e93fa1 --- /dev/null +++ b/grpc/ruby-3.4/Dockerfile @@ -0,0 +1,17 @@ +FROM public.ecr.aws/lambda/ruby:3.4 + +RUN dnf update -y && \ + dnf install -y \ + ruby-devel \ + make gcc gcc-c++ \ + openssl-devel zlib-devel libffi-devel \ + git patch tar \ + && dnf clean all + +COPY Gemfile . +COPY Gemfile.lock . + +RUN bundle config set deployment true && \ + bundle config set without 'test development' + +RUN BUNDLE_FORCE_RUBY_PLATFORM=true bundle diff --git a/grpc/ruby-3.4/Gemfile b/grpc/ruby-3.4/Gemfile new file mode 100644 index 0000000..a957f6c --- /dev/null +++ b/grpc/ruby-3.4/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' + +gem 'grpc' diff --git a/grpc/ruby-3.4/Gemfile.lock b/grpc/ruby-3.4/Gemfile.lock new file mode 100644 index 0000000..e175f54 --- /dev/null +++ b/grpc/ruby-3.4/Gemfile.lock @@ -0,0 +1,22 @@ +GEM + remote: https://rubygems.org/ + specs: + bigdecimal (3.2.2) + google-protobuf (4.32.0) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.20.0) + google-protobuf (>= 3.18, < 5.a) + grpc (1.74.1) + google-protobuf (>= 3.25, < 5.0) + googleapis-common-protos-types (~> 1.0) + rake (13.3.0) + +PLATFORMS + ruby + +DEPENDENCIES + grpc + +BUNDLED WITH + 2.7.1 From 57c7ae8218b328312f3f6f97516c69527a1520eb Mon Sep 17 00:00:00 2001 From: Tomasz Latusek Date: Mon, 1 Sep 2025 12:43:52 +0200 Subject: [PATCH 2/2] Test GPG key to verify signature --- grpc/ruby-3.4/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grpc/ruby-3.4/Dockerfile b/grpc/ruby-3.4/Dockerfile index 7e93fa1..865e3d7 100644 --- a/grpc/ruby-3.4/Dockerfile +++ b/grpc/ruby-3.4/Dockerfile @@ -5,8 +5,8 @@ RUN dnf update -y && \ ruby-devel \ make gcc gcc-c++ \ openssl-devel zlib-devel libffi-devel \ - git patch tar \ - && dnf clean all + git patch tar && \ + dnf clean all COPY Gemfile . COPY Gemfile.lock .