|
| 1 | +FROM oraclelinux:8-slim |
| 2 | + |
| 3 | +RUN microdnf install -y yum |
| 4 | +# enable nodesource repo for nodejs |
| 5 | +RUN curl -sL https://rpm.nodesource.com/setup_22.x | bash - |
| 6 | +RUN curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo |
| 7 | + |
| 8 | +RUN yum update -y && \ |
| 9 | + yum install -y crypto-policies-scripts && \ |
| 10 | + yum install -y --setopt=skip_missing_names_on_install=False \ |
| 11 | + nodejs \ |
| 12 | + yarn |
| 13 | + |
| 14 | +RUN yum install -y gcc gcc-c++ \ |
| 15 | + libtool libtool-ltdl \ |
| 16 | + make cmake \ |
| 17 | + git \ |
| 18 | + pkgconfig \ |
| 19 | + sudo \ |
| 20 | + automake autoconf \ |
| 21 | + rpmdevtools createrepo_c epel-release \ |
| 22 | + bison yum-utils rpm-build \ |
| 23 | + rsync \ |
| 24 | + krb5-devel \ |
| 25 | + wget && \ |
| 26 | + yum install -y --enablerepo=ol8_codeready_builder glibc-static && \ |
| 27 | + yum clean all && rm -rf /var/cache/yum /var/cache/dnf |
| 28 | + |
| 29 | +# keep that format for easier search |
| 30 | +ENV GO_VERSION=1.23.4 |
| 31 | +ENV GO_RELEASER_VERSION=2.8.2 |
| 32 | + |
| 33 | +RUN if [ `uname -m` == "x86_64" ]; then ARCH=amd64; else ARCH=arm64; fi && \ |
| 34 | + curl -fSsL -o /tmp/golang.tar.gz https://dl.google.com/go/go${GO_VERSION}.linux-${ARCH}.tar.gz && \ |
| 35 | + curl -fSsL -o /tmp/goreleaser.rpm https://github.com/goreleaser/goreleaser/releases/download/v${GO_RELEASER_VERSION}/goreleaser-${GO_RELEASER_VERSION}-1.`uname -m`.rpm && \ |
| 36 | + tar -C /usr/local -xzf /tmp/golang.tar.gz && \ |
| 37 | + yum install -y /tmp/goreleaser.rpm && \ |
| 38 | + rm /tmp/golang.tar.gz /tmp/goreleaser.rpm |
| 39 | + |
| 40 | +RUN update-alternatives --install "/usr/bin/go" "go" "/usr/local/go/bin/go" 0 |
| 41 | +RUN update-alternatives --set go /usr/local/go/bin/go |
| 42 | +RUN update-alternatives --install "/usr/bin/gofmt" "gofmt" "/usr/local/go/bin/gofmt" 0 |
| 43 | +RUN update-alternatives --set gofmt /usr/local/go/bin/gofmt |
| 44 | + |
| 45 | +RUN useradd builder -u 1000 -m -G users,wheel && \ |
| 46 | + echo "builder ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers && \ |
| 47 | + echo "# macros" > /home/builder/.rpmmacros && \ |
| 48 | + echo "%_topdir /home/builder/rpm" >> /home/builder/.rpmmacros && \ |
| 49 | + mkdir -p /home/builder/{rpm,go/pkg} && \ |
| 50 | + chmod -R 755 /home/builder && \ |
| 51 | + chown -R builder:builder /home/builder |
| 52 | + |
| 53 | +USER builder |
| 54 | + |
| 55 | +ENV FLAVOR=rpmbuild OS=centos DIST=el8 |
| 56 | +WORKDIR /home/builder/rpm |
0 commit comments