diff --git a/.gitlab/ci/custom.images.yml b/.gitlab/ci/custom.images.yml index 9282ce5..aacf41c 100644 --- a/.gitlab/ci/custom.images.yml +++ b/.gitlab/ci/custom.images.yml @@ -76,6 +76,9 @@ omnibus-gitlab-jammy: omnibus-gitlab-amazonlinux2: extends: .build_and_deploy +omnibus-gitlab-amazonlinux2022: + extends: .build_and_deploy + omnibus-gitlab-depscan: extends: .build_and_deploy diff --git a/Dockerfile.omnibus-gitlab-amazonlinux2022 b/Dockerfile.omnibus-gitlab-amazonlinux2022 new file mode 100644 index 0000000..36a2482 --- /dev/null +++ b/Dockerfile.omnibus-gitlab-amazonlinux2022 @@ -0,0 +1,64 @@ +FROM amazonlinux:2022 as builder-base + +RUN yum update -y -q \ + && yum groupinstall -y "Development Tools" \ + && yum install -y --allowerasing \ + gcc gcc-c++ git make curl zlib-devel glibc-locale-source hostname \ + && yum clean all +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 +RUN localedef -c -f UTF-8 -i C C.UTF-8 + + +FROM builder-base as builder-openssl + +RUN yum install -y perl-FindBin + +ENV OPENSSL_VERSION 1.1.1q +RUN curl -fsSL "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" | tar -xzC /tmp +WORKDIR /tmp/openssl-${OPENSSL_VERSION} +RUN ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib +RUN make +ENV DESTDIR=/tmp/openssl-install +RUN mkdir -p ${DESTDIR} +RUN make DESTDIR=${DESTDIR} INSTALL_PREFIX=${DESTDIR} install +WORKDIR / +RUN rm -rf ${DESTDIR}/usr/local/openssl/certs \ + && ln -s /etc/ssl/certs ${DESTDIR}/usr/local/openssl/ + +FROM builder-base as builder-ruby + +COPY --from=builder-openssl /tmp/openssl-install / + +RUN yum install -y gdbm-devel readline-devel + +ENV RUBY_VERSION 2.7.5 +RUN curl -fsSL "https://cache.ruby-lang.org/pub/ruby/2.7/ruby-${RUBY_VERSION}.tar.gz" \ + | tar -xzC /tmp +WORKDIR /tmp/ruby-${RUBY_VERSION} + +RUN ./configure --disable-install-rdoc --disable-install-doc --disable-install-capi --with-openssl-dir=/usr/local/openssl +RUN make +RUN mkdir /tmp/ruby-install +RUN make DESTDIR=/tmp/ruby-install install +RUN mkdir -p /tmp/ruby-install/etc/ld.so.conf.d/ \ + && echo "/usr/local/openssl/lib" > /tmp/ruby-install/etc/ld.so.conf.d/openssl-local.conf +RUN mkdir -p /tmp/ruby-install/etc/profile.d \ + && echo "PATH=\${PATH}:/usr/local/openssl/bin" > /tmp/ruby-install/etc/profile.d/openssl-local.sh +WORKDIR / + +FROM builder-base as builder-assemble + +COPY --from=builder-openssl /tmp/openssl-install/ / +RUN rm -rf /usr/local/openssl/certs \ + && ln -sf /etc/ssl/certs /usr/local/openssl/certs \ + && ln -sf /etc/ssl/cert.pem /usr/local/openssl/cert.pem + +COPY --from=builder-ruby /tmp/ruby-install/ / +RUN ldconfig -f /etc/ld.so.conf +ENV PATH=${PATH}:/usr/local/openssl/bin +RUN gem install bundler --no-document --version 2.2.33 + +FROM builder-base +ENV PATH=${PATH}:/usr/local/openssl/bin +COPY --from=builder-assemble / /