Skip to content

Commit b24b93d

Browse files
committed
Adds Dockerfile for Ruby 3.2
0 parents  commit b24b93d

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

Dockerfile

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
FROM public.ecr.aws/lambda/ruby:3.2
2+
3+
RUN yum swap -y openssl-snapsafe-libs openssl-libs
4+
5+
RUN yum groupinstall -y "Development Tools" && \
6+
yum install -y \
7+
make gcc gcc-c++ \
8+
libcurl-devel \
9+
mariadb-devel \
10+
libffi-devel \
11+
xz \
12+
cmake3 \
13+
git \
14+
wget \
15+
boost-devel \
16+
python3-devel \
17+
epel-release \
18+
pkg-config \
19+
gobject-introspection \
20+
gobject-introspection-devel \
21+
arrow \
22+
arrow-libs \
23+
arrow-glib \
24+
arrow-glib-devel \
25+
parquet-libs \
26+
parquet-glib \
27+
parquet-glib-devel \
28+
gtk-doc \
29+
glib2-devel
30+
31+
RUN yum install -y python3-pip
32+
33+
RUN pip3 install meson ninja
34+
35+
# Download Apache Arrow source once and extract it
36+
RUN cd /tmp && \
37+
wget https://github.com/apache/arrow/archive/refs/tags/apache-arrow-19.0.0.tar.gz && \
38+
tar xf apache-arrow-19.0.0.tar.gz
39+
40+
# Build Arrow C++ libraries
41+
# These provide core Arrow functionality including Parquet support
42+
RUN cd /tmp/arrow-apache-arrow-19.0.0/cpp && \
43+
mkdir build && \
44+
cd build && \
45+
cmake3 .. \
46+
-DARROW_PARQUET=ON \
47+
-DARROW_DATASET=ON \
48+
-DARROW_WITH_SNAPPY=ON \
49+
-DARROW_WITH_ZLIB=ON \
50+
-DARROW_WITH_ZSTD=ON \
51+
-DARROW_WITH_LZ4=ON \
52+
-DARROW_WITH_BROTLI=ON \
53+
-DARROW_COMPUTE=ON \
54+
-DARROW_CSV=ON \
55+
-DARROW_JSON=ON \
56+
-DCMAKE_INSTALL_PREFIX=/usr \
57+
-DCMAKE_INSTALL_LIBDIR=lib64 && \
58+
make -j$(nproc) && \
59+
make install && \
60+
/sbin/ldconfig
61+
62+
# Build Arrow GLib bindings
63+
# These are required for Ruby to interface with the C++ libraries
64+
RUN cd /tmp/arrow-apache-arrow-19.0.0/c_glib && \
65+
meson build --prefix=/usr --libdir=lib64 && \
66+
cd build && \
67+
ninja && \
68+
ninja install && \
69+
cd /tmp && \
70+
rm -rf arrow-apache-arrow-19.0.0 apache-arrow-19.0.0.tar.gz && \
71+
/sbin/ldconfig
72+
73+
ENV PKG_CONFIG_PATH=/usr/lib64/pkgconfig \
74+
LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH \
75+
ARROW_HOME=/usr
76+
77+
RUN yum install -y amazon-linux-extras && \
78+
amazon-linux-extras install epel -y

0 commit comments

Comments
 (0)