From e35a0db508c78c358a7e28ba347787191ef68686 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Thu, 22 Oct 2020 14:48:27 -0700 Subject: [PATCH 1/2] ubi8 images: Use LIBDIR instead of hard-coded /usr/lib The UBI8 builder defines LIBDIR to /usr/lib64, so we should use that constant to be consistent. This may be a prerequisite to compile jemalloc with Ruby. Since jemalloc uses LIBDIR by default, jemalloc libraries are installed in /usr/lib64. jemalloc does not compile properly with /usr/lib; the configure process isn't able to determine the length of a `long long`. Ruby also does not compile properly if jemalloc is in /usr/lib64 and Ruby is using /usr/lib. --- gitaly/Dockerfile.build.ubi8 | 4 ++-- gitlab-exporter/Dockerfile.build.ubi8 | 4 ++-- gitlab-mailroom/Dockerfile.build.ubi8 | 4 ++-- gitlab-rails/Dockerfile.build.ubi8 | 6 +++--- gitlab-ruby/Dockerfile.build.ubi8 | 6 +++--- gitlab-task-runner/Dockerfile.ubi8 | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gitaly/Dockerfile.build.ubi8 b/gitaly/Dockerfile.build.ubi8 index 438839e75..aa51b57ed 100644 --- a/gitaly/Dockerfile.build.ubi8 +++ b/gitaly/Dockerfile.build.ubi8 @@ -33,9 +33,9 @@ RUN mkdir /assets \ && rm -rf /srv/gitaly-ruby/spec /srv/gitaly-ruby/features \ && touch .ruby-bundle \ && make install \ - && /build-scripts/cleanup-gems /usr/lib/ruby/gems \ + && /build-scripts/cleanup-gems ${LIBDIR}/ruby/gems \ && cp -R --parents \ /usr/local/bin/gitaly* \ - /usr/lib/ruby/gems/ \ + ${LIBDIR}/ruby/gems/ \ /srv/gitaly-ruby \ /assets diff --git a/gitlab-exporter/Dockerfile.build.ubi8 b/gitlab-exporter/Dockerfile.build.ubi8 index 048d8af20..e452a02c2 100644 --- a/gitlab-exporter/Dockerfile.build.ubi8 +++ b/gitlab-exporter/Dockerfile.build.ubi8 @@ -9,11 +9,11 @@ ADD postgresql.tar.gz / RUN mkdir /assets \ && mv /usr/local/postgresql/bin/* /usr/bin/ \ - && mv /usr/local/postgresql/lib/* /usr/lib/ \ + && cp -R /usr/local/postgresql/lib/* ${LIBDIR}/ \ && mv /usr/local/postgresql/include/* /usr/include/ \ && mv /usr/local/postgresql/share/* /usr/share/ \ && gem install gitlab-exporter -v ${GITLAB_EXPORTER_VERSION} \ && cp -R --parents \ - /usr/lib/ruby/gems \ + ${LIBDIR}/ruby/gems \ /usr/bin/gitlab-exporter \ /assets diff --git a/gitlab-mailroom/Dockerfile.build.ubi8 b/gitlab-mailroom/Dockerfile.build.ubi8 index 5fd0c165d..dfca9f4b5 100644 --- a/gitlab-mailroom/Dockerfile.build.ubi8 +++ b/gitlab-mailroom/Dockerfile.build.ubi8 @@ -13,8 +13,8 @@ RUN mkdir /assets \ gitlab-mail_room:${MAILROOM_VERSION} \ charlock_holmes:0.7.6 \ redis:4.2.2 redis-namespace:1.6.0 \ - && /build-scripts/cleanup-gems /usr/lib/ruby/gems \ + && /build-scripts/cleanup-gems ${LIBDIR}/ruby/gems \ && cp -R --parents \ - /usr/lib/ruby/gems \ + ${LIBDIR}/ruby/gems \ /usr/bin/mail_room \ /assets diff --git a/gitlab-rails/Dockerfile.build.ubi8 b/gitlab-rails/Dockerfile.build.ubi8 index 263c248b5..990fd2d2d 100644 --- a/gitlab-rails/Dockerfile.build.ubi8 +++ b/gitlab-rails/Dockerfile.build.ubi8 @@ -25,7 +25,7 @@ ENV PRIVATE_TOKEN=${API_TOKEN} RUN mkdir /assets \ && cp /usr/local/postgresql/bin/* /usr/bin/ \ - && cp -R /usr/local/postgresql/lib/* /usr/lib/ \ + && cp -R /usr/local/postgresql/lib/* ${LIBDIR}/ \ && cp -R /usr/local/postgresql/include/* /usr/include/ \ && cp -R /usr/local/postgresql/share/* /usr/share/ \ && curl --retry 6 -L https://github.com/google/re2/archive/${LIBRE2_VERSION}.tar.gz | tar -xz \ @@ -66,10 +66,10 @@ RUN /gitlab-fetch \ COPY --from=assets assets /srv/gitlab/public/assets/ -RUN mkdir -p /assets/usr/{bin,lib} \ +RUN mkdir -p /assets/usr/{bin,lib} /assets${LIBDIR} \ && cp /usr/local/bin/gitlab-elasticsearch-indexer /assets/usr/bin/ \ && cp /usr/local/postgresql/bin/* /assets/usr/bin/ \ - && cp -R /usr/local/postgresql/lib/* /assets/usr/lib/ \ + && cp -R /usr/local/postgresql/lib/* /assets${LIBDIR}/ \ && cp -R --parents \ /usr/local/lib/libre2.* \ /srv/gitlab \ diff --git a/gitlab-ruby/Dockerfile.build.ubi8 b/gitlab-ruby/Dockerfile.build.ubi8 index da579f10a..b2325c912 100644 --- a/gitlab-ruby/Dockerfile.build.ubi8 +++ b/gitlab-ruby/Dockerfile.build.ubi8 @@ -15,7 +15,7 @@ COPY shared/build-scripts/ /build-scripts RUN mkdir /assets \ && curl --retry 6 -s https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR_VERSION}/ruby-${RUBY_MINOR_VERSION}.tar.gz | tar -xz \ && cd ruby-${RUBY_MINOR_VERSION} \ - && ./configure --prefix=/usr --disable-dtrace --disable-install-doc --disable-install-rdoc --enable-shared --with-out-ext=dbm,readline --without-gmp --without-gdbm --without-tk \ + && ./configure --prefix=/usr --libdir=${LIBDIR} --disable-dtrace --disable-install-doc --disable-install-rdoc --enable-shared --with-out-ext=dbm,readline --without-gmp --without-gdbm --without-tk \ && make -j "$(nproc)" \ && make -j "$(nproc)" install \ && gem update --no-document --system ${RUBYGEMS_VERSION} \ @@ -23,9 +23,9 @@ RUN mkdir /assets \ && cd .. \ && curl --retry 6 -sL https://github.com/connoratherton/rb-readline/archive/v${RBREADLINE_VERSION}.tar.gz | tar -xz \ && ruby rb-readline-${RBREADLINE_VERSION}/setup.rb \ - && /build-scripts/cleanup-gems /usr/lib/ruby/gems \ + && /build-scripts/cleanup-gems ${LIBDIR}/ruby/gems \ && cp -R --parents \ /usr/bin/{ruby,rdoc,irb,erb,rake,gem,bundler,bundle} \ - /usr/lib/{ruby/,libruby.*} \ + ${LIBDIR}/{ruby/,libruby.*} \ /usr/include/ruby-*/ \ /assets diff --git a/gitlab-task-runner/Dockerfile.ubi8 b/gitlab-task-runner/Dockerfile.ubi8 index 6506a0ff6..5c5882add 100644 --- a/gitlab-task-runner/Dockerfile.ubi8 +++ b/gitlab-task-runner/Dockerfile.ubi8 @@ -19,7 +19,7 @@ ADD gitlab-task-runner-ee.tar.gz / ADD gitlab-python.tar.gz / COPY scripts/bin/* /usr/local/bin/ -COPY scripts/lib/* /usr/lib/ruby/vendor_ruby/ +COPY scripts/lib/* ${LIBDIR}/ruby/vendor_ruby/ RUN dnf clean all \ && rm -r /var/cache/dnf \ -- GitLab From 8e127c9e3b7ac09b701e8dd4beca8321fdb2f519 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 2 Nov 2020 16:21:34 -0800 Subject: [PATCH 2/2] Use install for binaries and cp -R for paths --- gitlab-exporter/Dockerfile.build.ubi8 | 4 ++-- gitlab-rails/Dockerfile.build.ubi8 | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gitlab-exporter/Dockerfile.build.ubi8 b/gitlab-exporter/Dockerfile.build.ubi8 index e452a02c2..9e3cc5a17 100644 --- a/gitlab-exporter/Dockerfile.build.ubi8 +++ b/gitlab-exporter/Dockerfile.build.ubi8 @@ -8,8 +8,8 @@ ADD gitlab-ruby.tar.gz / ADD postgresql.tar.gz / RUN mkdir /assets \ - && mv /usr/local/postgresql/bin/* /usr/bin/ \ - && cp -R /usr/local/postgresql/lib/* ${LIBDIR}/ \ + && install /usr/local/postgresql/bin/* /usr/bin/ \ + && cp -R /usr/local/postgresql/lib/. ${LIBDIR}/ \ && mv /usr/local/postgresql/include/* /usr/include/ \ && mv /usr/local/postgresql/share/* /usr/share/ \ && gem install gitlab-exporter -v ${GITLAB_EXPORTER_VERSION} \ diff --git a/gitlab-rails/Dockerfile.build.ubi8 b/gitlab-rails/Dockerfile.build.ubi8 index 990fd2d2d..1e5f44f99 100644 --- a/gitlab-rails/Dockerfile.build.ubi8 +++ b/gitlab-rails/Dockerfile.build.ubi8 @@ -24,10 +24,10 @@ ADD gitlab-graphicsmagick.tar.gz / ENV PRIVATE_TOKEN=${API_TOKEN} RUN mkdir /assets \ - && cp /usr/local/postgresql/bin/* /usr/bin/ \ - && cp -R /usr/local/postgresql/lib/* ${LIBDIR}/ \ - && cp -R /usr/local/postgresql/include/* /usr/include/ \ - && cp -R /usr/local/postgresql/share/* /usr/share/ \ + && install /usr/local/postgresql/bin/* /usr/bin/ \ + && cp -R /usr/local/postgresql/lib/. ${LIBDIR}/ \ + && cp -R /usr/local/postgresql/include/. /usr/include/ \ + && cp -R /usr/local/postgresql/share/. /usr/share/ \ && curl --retry 6 -L https://github.com/google/re2/archive/${LIBRE2_VERSION}.tar.gz | tar -xz \ && cd re2-${LIBRE2_VERSION} \ && make \ @@ -68,8 +68,8 @@ COPY --from=assets assets /srv/gitlab/public/assets/ RUN mkdir -p /assets/usr/{bin,lib} /assets${LIBDIR} \ && cp /usr/local/bin/gitlab-elasticsearch-indexer /assets/usr/bin/ \ - && cp /usr/local/postgresql/bin/* /assets/usr/bin/ \ - && cp -R /usr/local/postgresql/lib/* /assets${LIBDIR}/ \ + && install /usr/local/postgresql/bin/* /assets/usr/bin/ \ + && cp -R /usr/local/postgresql/lib/. /assets${LIBDIR}/ \ && cp -R --parents \ /usr/local/lib/libre2.* \ /srv/gitlab \ -- GitLab