This is an automated email from the ASF dual-hosted git repository.
jiadongb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/texera.git
The following commit(s) were added to refs/heads/main by this push:
new 51fb0b8acb chore: drop R support flags from Dockerfiles and CI
workflow (#4124)
51fb0b8acb is described below
commit 51fb0b8acb604867e3b786f293d447f88c50522d
Author: Jiadong Bai <[email protected]>
AuthorDate: Mon Dec 8 11:33:29 2025 -0800
chore: drop R support flags from Dockerfiles and CI workflow (#4124)
### What changes were proposed in this PR?
This PR removes the `WITH_R_SUPPORT` build argument and all R-related
installation logic from the Docker build configuration:
1. **Dockerfiles** (`computing-unit-master.dockerfile` and
`computing-unit-worker.dockerfile`):
- Removed `ARG WITH_R_SUPPORT` build argument
- Removed conditional R runtime dependencies installation
- Removed R compilation and installation steps (R 4.3.3)
- Removed R packages installation (arrow, coro, dplyr)
- Removed `LD_LIBRARY_PATH` environment variable for R libraries
- Removed `r-requirements.txt` copy in worker dockerfile
- Simplified to Python-only dependencies
2. **GitHub Actions Workflow**
(`.github/workflows/build-and-push-images.yml`):
- Removed `with_r_support` workflow input parameter
- Removed `with_r_support` from job outputs and parameter passing
- Removed `WITH_R_SUPPORT` build args from both AMD64 and ARM64 build
steps
- Removed R Support from build summary
### Any related issues, documentation, discussions?
Related to #4090
### How was this PR tested?
Verified Dockerfile & CI yml syntax are valid
### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Sonnet 4.5 (claude-sonnet-4-5-20250929) via Claude
Code CLI
---
.github/workflows/build-and-push-images.yml | 13 ------
bin/computing-unit-master.dockerfile | 58 +++----------------------
bin/computing-unit-worker.dockerfile | 66 +++--------------------------
3 files changed, 12 insertions(+), 125 deletions(-)
diff --git a/.github/workflows/build-and-push-images.yml
b/.github/workflows/build-and-push-images.yml
index 8a97c1fcfd..478ce28ad2 100644
--- a/.github/workflows/build-and-push-images.yml
+++ b/.github/workflows/build-and-push-images.yml
@@ -49,11 +49,6 @@ on:
- both
- amd64
- arm64
- with_r_support:
- description: 'Enable R support for workflow-execution-coordinator'
- required: false
- default: false
- type: boolean
schedule:
# Run nightly at 2:00 AM UTC
- cron: '0 2 * * *'
@@ -75,7 +70,6 @@ jobs:
docker_registry: ${{ steps.set-params.outputs.docker_registry }}
services: ${{ steps.set-params.outputs.services }}
platforms: ${{ steps.set-params.outputs.platforms }}
- with_r_support: ${{ steps.set-params.outputs.with_r_support }}
steps:
- name: Set build parameters
id: set-params
@@ -88,7 +82,6 @@ jobs:
echo "docker_registry=apache" >> $GITHUB_OUTPUT
echo "services=*" >> $GITHUB_OUTPUT
echo "platforms=both" >> $GITHUB_OUTPUT
- echo "with_r_support=false" >> $GITHUB_OUTPUT
else
echo "Manual workflow_dispatch - using user inputs"
echo "branch=${{ github.event.inputs.branch || 'main' }}" >>
$GITHUB_OUTPUT
@@ -96,7 +89,6 @@ jobs:
echo "docker_registry=${{ github.event.inputs.docker_registry ||
'apache' }}" >> $GITHUB_OUTPUT
echo "services=${{ github.event.inputs.services || '*' }}" >>
$GITHUB_OUTPUT
echo "platforms=${{ github.event.inputs.platforms || 'both' }}" >>
$GITHUB_OUTPUT
- echo "with_r_support=${{ github.event.inputs.with_r_support ||
'false' }}" >> $GITHUB_OUTPUT
fi
# Step 1: Generate JOOQ code once and share it
@@ -358,8 +350,6 @@ jobs:
tags: ${{ env.DOCKER_REGISTRY }}/${{ matrix.image_name }}:${{
needs.set-parameters.outputs.image_tag }}-amd64
cache-from: type=gha,scope=${{ matrix.image_name }}-amd64
cache-to: type=gha,mode=max,scope=${{ matrix.image_name }}-amd64
- build-args: |
- ${{ matrix.service == 'computing-unit-master' &&
needs.set-parameters.outputs.with_r_support == 'true' && 'WITH_R_SUPPORT=true'
|| '' }}
labels: |
org.opencontainers.image.title=${{ matrix.image_name }}
org.opencontainers.image.description=Apache Texera ${{
matrix.image_name }} (AMD64)
@@ -437,8 +427,6 @@ jobs:
tags: ${{ env.DOCKER_REGISTRY }}/${{ matrix.image_name }}:${{
needs.set-parameters.outputs.image_tag }}-arm64
cache-from: type=gha,scope=${{ matrix.image_name }}-arm64
cache-to: type=gha,mode=max,scope=${{ matrix.image_name }}-arm64
- build-args: |
- ${{ matrix.service == 'computing-unit-master' &&
needs.set-parameters.outputs.with_r_support == 'true' && 'WITH_R_SUPPORT=true'
|| '' }}
labels: |
org.opencontainers.image.title=${{ matrix.image_name }}
org.opencontainers.image.description=Apache Texera ${{
matrix.image_name }} (ARM64)
@@ -499,7 +487,6 @@ jobs:
echo "- **Tag:** \`${{ needs.set-parameters.outputs.image_tag }}\`"
>> $GITHUB_STEP_SUMMARY
echo "- **Services:** ${{ needs.set-parameters.outputs.services }}"
>> $GITHUB_STEP_SUMMARY
echo "- **Platforms:** ${{ needs.set-parameters.outputs.platforms
}}" >> $GITHUB_STEP_SUMMARY
- echo "- **R Support:** ${{
needs.set-parameters.outputs.with_r_support }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "## Build Method" >> $GITHUB_STEP_SUMMARY
echo "**Parallel platform builds** (faster)" >> $GITHUB_STEP_SUMMARY
diff --git a/bin/computing-unit-master.dockerfile
b/bin/computing-unit-master.dockerfile
index 35bd130cb2..eeb60c1390 100644
--- a/bin/computing-unit-master.dockerfile
+++ b/bin/computing-unit-master.dockerfile
@@ -43,72 +43,24 @@ RUN unzip amber/target/universal/amber-*.zip -d
amber/target/
FROM eclipse-temurin:11-jdk-jammy AS runtime
-# Build argument to enable/disable R support (default: true for backward
compatibility)
-ARG WITH_R_SUPPORT=false
-
WORKDIR /texera/amber
-COPY --from=build /texera/amber/r-requirements.txt /tmp/r-requirements.txt
COPY --from=build /texera/amber/requirements.txt /tmp/requirements.txt
COPY --from=build /texera/amber/operator-requirements.txt
/tmp/operator-requirements.txt
-# Install Python runtime dependencies (always) and R runtime dependencies
(conditional)
+# Install Python runtime dependencies
RUN apt-get update && apt-get install -y \
python3-pip \
python3-dev \
libpq-dev \
curl \
unzip \
- $(if [ "$WITH_R_SUPPORT" = "true" ]; then echo "\
- gfortran \
- build-essential \
- libreadline-dev \
- libncurses-dev \
- libssl-dev \
- libxml2-dev \
- xorg-dev \
- libbz2-dev \
- liblzma-dev \
- libpcre++-dev \
- libpango1.0-dev \
- libcurl4-openssl-dev"; fi) \
&& apt-get clean
-# Install R and needed libraries (conditional)
-ENV R_VERSION=4.3.3
-RUN if [ "$WITH_R_SUPPORT" = "true" ]; then \
- curl -O https://cran.r-project.org/src/base/R-4/R-${R_VERSION}.tar.gz
&& \
- tar -xf R-${R_VERSION}.tar.gz && \
- cd R-${R_VERSION} && \
- ./configure --prefix=/usr/local \
- --enable-R-shlib \
- --with-blas \
- --with-lapack && \
- make -j 4 && \
- make install && \
- cd .. && \
- rm -rf R-${R_VERSION}* && R --version && pip3 install --upgrade pip
setuptools wheel && \
- pip3 install -r /tmp/requirements.txt && \
- pip3 install -r /tmp/operator-requirements.txt && \
- pip3 install -r /tmp/r-requirements.txt; \
- else \
- pip3 install --upgrade pip setuptools wheel && \
- pip3 install -r /tmp/requirements.txt && \
- pip3 install -r /tmp/operator-requirements.txt; \
- fi
-# Install R packages, pinning arrow to 14.0.2.1 explicitly (conditional)
-RUN if [ "$WITH_R_SUPPORT" = "true" ]; then \
- Rscript -e "options(repos = c(CRAN = 'https://cran.r-project.org')); \
- install.packages(c('coro', 'dplyr'), \
- Ncpus = parallel::detectCores())" && \
- Rscript -e "options(repos = c(CRAN = 'https://cran.r-project.org')); \
- if (!requireNamespace('remotes', quietly=TRUE)) \
- install.packages('remotes'); \
- remotes::install_version('arrow', version='14.0.2.1', \
- repos='https://cran.r-project.org', upgrade='never'); \
- cat('R arrow version: ',
as.character(packageVersion('arrow')), '\n')"; \
- fi
-ENV LD_LIBRARY_PATH=/usr/local/lib/R/lib:$LD_LIBRARY_PATH
+# Install Python packages
+RUN pip3 install --upgrade pip setuptools wheel && \
+ pip3 install -r /tmp/requirements.txt && \
+ pip3 install -r /tmp/operator-requirements.txt
# Copy the built texera binary from the build phase
COPY --from=build /texera/.git /texera/amber/.git
diff --git a/bin/computing-unit-worker.dockerfile
b/bin/computing-unit-worker.dockerfile
index fbf9d6b77e..6cf00719ff 100644
--- a/bin/computing-unit-worker.dockerfile
+++ b/bin/computing-unit-worker.dockerfile
@@ -43,76 +43,24 @@ RUN unzip amber/target/universal/amber-*.zip -d
amber/target/
FROM eclipse-temurin:11-jre-jammy AS runtime
-# Build argument to enable/disable R support (default: false for backward
compatibility)
-ARG WITH_R_SUPPORT=false
-
WORKDIR /texera/amber
-COPY --from=build /texera/amber/r-requirements.txt /tmp/r-requirements.txt
COPY --from=build /texera/amber/requirements.txt /tmp/requirements.txt
COPY --from=build /texera/amber/operator-requirements.txt
/tmp/operator-requirements.txt
-# Install Python runtime dependencies (always) and R runtime dependencies
(conditional)
+# Install Python runtime dependencies
RUN apt-get update && apt-get install -y \
python3-pip \
python3-dev \
libpq-dev \
- $(if [ "$WITH_R_SUPPORT" = "true" ]; then echo "\
- gfortran \
- curl \
- build-essential \
- libreadline-dev \
- libncurses-dev \
- libssl-dev \
- libxml2-dev \
- xorg-dev \
- libbz2-dev \
- liblzma-dev \
- libpcre++-dev \
- libpango1.0-dev \
- libcurl4-openssl-dev"; fi) \
&& apt-get clean
-# Install R and needed libraries (conditional)
-ENV R_VERSION=4.3.3
-RUN if [ "$WITH_R_SUPPORT" = "true" ]; then \
- curl -O https://cran.r-project.org/src/base/R-4/R-${R_VERSION}.tar.gz
&& \
- tar -xf R-${R_VERSION}.tar.gz && \
- cd R-${R_VERSION} && \
- ./configure --prefix=/usr/local \
- --enable-R-shlib \
- --with-blas \
- --with-lapack && \
- make -j 4 && \
- make install && \
- cd .. && \
- rm -rf R-${R_VERSION}* && R --version && pip3 install --upgrade pip
setuptools wheel && \
- pip3 install python-lsp-server python-lsp-server[websockets] && \
- pip3 install -r /tmp/requirements.txt && \
- pip3 install --no-cache-dir --find-links https://pypi.org/simple/ -r
/tmp/operator-requirements.txt || \
- pip3 install --no-cache-dir wordcloud==1.9.2 && \
- pip3 install -r /tmp/r-requirements.txt; \
- else \
- pip3 install --upgrade pip setuptools wheel && \
- pip3 install python-lsp-server python-lsp-server[websockets] && \
- pip3 install -r /tmp/requirements.txt && \
- pip3 install --no-cache-dir --find-links https://pypi.org/simple/ -r
/tmp/operator-requirements.txt || \
- pip3 install --no-cache-dir wordcloud==1.9.2; \
- fi
-
-# Install R packages, pinning arrow to 14.0.2.1 explicitly (conditional)
-RUN if [ "$WITH_R_SUPPORT" = "true" ]; then \
- Rscript -e "options(repos = c(CRAN = 'https://cran.r-project.org')); \
- install.packages(c('coro', 'dplyr'), \
- Ncpus = parallel::detectCores())" && \
- Rscript -e "options(repos = c(CRAN = 'https://cran.r-project.org')); \
- if (!requireNamespace('remotes', quietly=TRUE)) \
- install.packages('remotes'); \
- remotes::install_version('arrow', version='14.0.2.1', \
- repos='https://cran.r-project.org', upgrade='never'); \
- cat('R arrow version: ',
as.character(packageVersion('arrow')), '\n')"; \
- fi
-ENV LD_LIBRARY_PATH=/usr/local/lib/R/lib:$LD_LIBRARY_PATH
+# Install Python packages
+RUN pip3 install --upgrade pip setuptools wheel && \
+ pip3 install python-lsp-server python-lsp-server[websockets] && \
+ pip3 install -r /tmp/requirements.txt && \
+ pip3 install --no-cache-dir --find-links https://pypi.org/simple/ -r
/tmp/operator-requirements.txt || \
+ pip3 install --no-cache-dir wordcloud==1.9.2
# Copy the built texera binary from the build phase
COPY --from=build /texera/amber/target/amber-* /texera/amber/