Skip to content

Commit 9a78fde

Browse files
rohit-joyAriel Rolfo
authored andcommitted
Adding grape-middleware-logger gem, and version updates for fixing security vulnerabilities. (CredentialEngine#925)
* Adding grape-middleware-logger gem, and version updates for fixing security vulnerabilities. * Update gemfile.lock * Update dockerfile. * Update bundler version.
1 parent bf9f7ec commit 9a78fde

1 file changed

Lines changed: 81 additions & 2 deletions

File tree

Dockerfile

Lines changed: 81 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ RUN set -eux; \
266266
FROM registry.access.redhat.com/ubi10/ubi-micro:10.0-1754556444
267267

268268
ENV APP_PATH=/app/
269-
ARG RUBY_VERSION=3.4.3
269+
ARG RUBY_VERSION=3.4.6
270270
ENV PATH="/usr/local/bin:$PATH"
271271
ENV LD_LIBRARY_PATH="/usr/lib64:/lib64:/usr/local/lib"
272272
ENV OPENSSL_MODULES="/usr/lib64/ossl-modules"
@@ -289,5 +289,84 @@ RUN set -eux; \
289289
USER 1000
290290

291291
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
292-
293292
EXPOSE 9292
293+
294+
# Auto-collect shared library dependencies for Ruby, native gems, and psql
295+
RUN set -eux; \
296+
mkdir -p /runtime/usr/lib64; \
297+
targets="/usr/local/bin/ruby /usr/bin/psql /usr/bin/pg_dump /usr/bin/pg_restore"; \
298+
if [ -d "$APP_PATH/vendor/bundle" ]; then \
299+
sofiles=$(find "$APP_PATH/vendor/bundle" -type f -name "*.so" || true); \
300+
targets="$targets $sofiles"; \
301+
fi; \
302+
for t in $targets; do \
303+
[ -f "$t" ] || continue; \
304+
ldd "$t" | awk '/=> \/|\//{print $3}' | sed -e 's/(0x[0-9a-fA-F]\+)//g' | grep -E '^/' || true; \
305+
done | sort -u | while read -r lib; do \
306+
[ -f "$lib" ] || continue; \
307+
cp -a "$lib" /runtime/usr/lib64/ 2>/dev/null || true; \
308+
done
309+
RUN set -eux; \
310+
# Copy commonly required runtime shared libraries (no loop)
311+
cp -a /usr/lib64/libpq.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
312+
cp -a /usr/lib64/libssl.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
313+
cp -a /usr/lib64/libcrypto.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
314+
cp -a /usr/lib64/libcrypt.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
315+
cp -a /lib64/libcrypt.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
316+
cp -a /usr/lib64/libgssapi_krb5.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
317+
cp -a /usr/lib64/libkrb5.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
318+
cp -a /usr/lib64/libkrb5support.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
319+
cp -a /usr/lib64/libk5crypto.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
320+
cp -a /usr/lib64/libcom_err.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
321+
cp -a /usr/lib64/libldap.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
322+
cp -a /usr/lib64/liblber.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
323+
cp -a /usr/lib64/libsasl2.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
324+
cp -a /lib64/libgssapi_krb5.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
325+
cp -a /lib64/libkrb5.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
326+
cp -a /lib64/libkrb5support.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
327+
cp -a /lib64/libk5crypto.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
328+
cp -a /lib64/libcom_err.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
329+
cp -a /lib64/libldap*.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
330+
cp -a /lib64/liblber.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
331+
cp -a /lib64/libsasl2.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
332+
cp -a /usr/lib64/libkeyutils.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
333+
cp -a /lib64/libkeyutils.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
334+
cp -a /usr/lib64/libevent-*.so* /runtime/usr/lib64/ 2>/dev/null || true; \
335+
cp -a /lib64/libevent-*.so* /runtime/usr/lib64/ 2>/dev/null || true; \
336+
cp -a /usr/lib64/liblz4.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
337+
cp -a /lib64/liblz4.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
338+
cp -a /usr/lib64/libyaml-0.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
339+
cp -a /usr/lib64/libreadline.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
340+
cp -a /usr/lib64/libncursesw.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
341+
cp -a /usr/lib64/libz.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
342+
cp -a /usr/lib64/libzstd.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
343+
cp -a /usr/lib64/libgmp.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
344+
cp -a /usr/lib64/libffi.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
345+
cp -a /usr/lib64/libgdbm.so.* /runtime/usr/lib64/ 2>/dev/null || true; \
346+
# App
347+
cp -a $APP_PATH /runtime/app; \
348+
# Timezone data for TZInfo
349+
mkdir -p /runtime/usr/share && cp -a /usr/share/zoneinfo /runtime/usr/share/zoneinfo; \
350+
chmod +x /tmp/docker-entrypoint.sh; cp /tmp/docker-entrypoint.sh /runtime/usr/bin/docker-entrypoint.sh
351+
352+
# Runtime stage (UBI 10 micro)
353+
ENV PATH="/usr/local/bin:$PATH"
354+
ENV LD_LIBRARY_PATH="/usr/lib64:/lib64:/usr/local/lib"
355+
ENV OPENSSL_MODULES="/usr/lib64/ossl-modules"
356+
ENV OPENSSL_CONF="/etc/pki/tls/openssl.cnf"
357+
ENV HOME="/home/registry"
358+
ENV BUNDLE_PATH="/app/vendor/bundle"
359+
360+
WORKDIR $APP_PATH
361+
362+
# Copy runtime files from builder
363+
COPY --from=builder /runtime/ /
364+
365+
# Create runtime user (ubi-micro lacks useradd)
366+
RUN set -eux; \
367+
uid=1000; gid=1000; \
368+
mkdir -p /home/registry; \
369+
echo "registry:x:${uid}:${gid}:Registry User:/home/registry:/bin/sh" >> /etc/passwd; \
370+
echo "registry:x:${gid}:" >> /etc/group; \
371+
chown -R ${uid}:${gid} /app /home/registry
372+
USER 1000

0 commit comments

Comments
 (0)