diff --git a/.appveyor.yml b/.appveyor.yml index 044f7a2d8..3627b3467 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -8,59 +8,14 @@ environment: COMMAND: if [[ "${APPVEYOR_REPO_COMMIT_MESSAGE@Q}" == *"[ci debug]"* ]]; then export DEBUG_FLAGS="--enable-debug"; fi; if [[ "${APPVEYOR_REPO_COMMIT_MESSAGE@Q}" == *"[ci gdb]"* ]]; then apt-get update && apt-get -y install gdb && export CONSTRUCT="gdb --batch -ex r -ex bt --return-child-result --args construct"; else export CONSTRUCT="construct"; fi && rmdir -v deps/rocksdb && ln -sv /usr/src/rocksdb deps && ./autogen.sh && ./configure --enable-assert ${DEBUG_FLAGS} && make install && ${CONSTRUCT} -smoketest -debug localhost matrix: -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-20.04-gcc-8 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-20.04-gcc-9 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-20.04-gcc-10 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-20.04-clang-9 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-20.04-clang-10 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-20.04-clang-11 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-20.04-clang-12 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-gcc-8 + - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 + DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-build-gcc-9-amd64 - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 - DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-gcc-9 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-gcc-10 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-gcc-11 + DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-build-gcc-12-amd64 - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 - DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-gcc-12 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-clang-10 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-clang-11 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-clang-12 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-clang-13 - -# - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 -# DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-base-clang-14 - - - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu1804 - DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-full-clang-14 + DOCKER_IMAGE: jevolk/construct:ubuntu-22.04-full-build-clang-14-amd64 for: - diff --git a/README.md b/README.md index ef6aeb650..25027461b 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ |:---|:---| | [![](https://img.shields.io/docker/image-size/jevolk/construct/alpine-3.16-full-built-clang-amd64.svg?logoWidth=25&label=alpine%203.16%20clang%20amd64&logo=Docker&style=flat-square&color=5965AF)](https://registry.hub.docker.com/r/jevolk/construct/tags) | [![](https://img.shields.io/docker/image-size/jevolk/construct/alpine-3.16-base-built-clang-amd64.svg?logoWidth=25&label=alpine%203.16%20clang%20amd64&logo=Docker&style=flat-square&color=5965AF)](https://registry.hub.docker.com/r/jevolk/construct/tags) | [![](https://img.shields.io/docker/image-size/jevolk/construct/alpine-3.16-full-built-gcc-amd64.svg?logoWidth=25&label=alpine%203.16%20gcc%20amd64&logo=Docker&style=flat-square&color=5965AF)](https://registry.hub.docker.com/r/jevolk/construct/tags) | [![](https://img.shields.io/docker/image-size/jevolk/construct/alpine-3.16-base-built-gcc-amd64.svg?logoWidth=25&label=alpine%203.16%20gcc%20amd64&logo=Docker&style=flat-square&color=5965AF)](https://registry.hub.docker.com/r/jevolk/construct/tags) -| [![](https://img.shields.io/docker/image-size/jevolk/construct/ubuntu-22.04-built.svg?logoWidth=25&label=ubuntu%2022.04%20amd64&logo=Docker&style=flat-square&color=5965AF)](https://registry.hub.docker.com/r/jevolk/construct/tags) | | +| [![](https://img.shields.io/docker/image-size/jevolk/construct/ubuntu-22.04-full-built-clang-14-amd64.svg?logoWidth=25&label=ubuntu%2022.04%20amd64&logo=Docker&style=flat-square&color=5965AF)](https://registry.hub.docker.com/r/jevolk/construct/tags) | | ### 🗒️ INSTRUCTIONS diff --git a/docker/build-and-push-images.sh b/docker/build-and-push-images.sh index b7b2b3585..0c9d98beb 100755 --- a/docker/build-and-push-images.sh +++ b/docker/build-and-push-images.sh @@ -94,32 +94,68 @@ docker push $ACCT/$REPO:alpine-3.16-full-built-clang-amd64 # Ubuntu 22.04 # -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base $BASEDIR/ubuntu/22.04/base -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-full $BASEDIR/ubuntu/22.04/full -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-gcc-9 $BASEDIR/ubuntu/22.04/base-gcc-9 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-gcc-10 $BASEDIR/ubuntu/22.04/base-gcc-10 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-gcc-11 $BASEDIR/ubuntu/22.04/base-gcc-11 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-gcc-12 $BASEDIR/ubuntu/22.04/base-gcc-12 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-clang-10 $BASEDIR/ubuntu/22.04/base-clang-10 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-clang-11 $BASEDIR/ubuntu/22.04/base-clang-11 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-clang-12 $BASEDIR/ubuntu/22.04/base-clang-12 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-clang-13 $BASEDIR/ubuntu/22.04/base-clang-13 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-clang-14 $BASEDIR/ubuntu/22.04/base-clang-14 -docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-full-clang-14 -t $ACCT/$REPO:ubuntu-22.04-built $BASEDIR/ubuntu/22.04/full-clang-14 +# +# L0 - Base featured image +# -docker push $ACCT/$REPO:ubuntu-22.04-base -docker push $ACCT/$REPO:ubuntu-22.04-full -docker push $ACCT/$REPO:ubuntu-22.04-base-gcc-9 -docker push $ACCT/$REPO:ubuntu-22.04-base-gcc-10 -docker push $ACCT/$REPO:ubuntu-22.04-base-gcc-11 -docker push $ACCT/$REPO:ubuntu-22.04-base-gcc-12 -docker push $ACCT/$REPO:ubuntu-22.04-base-clang-10 -docker push $ACCT/$REPO:ubuntu-22.04-base-clang-11 -docker push $ACCT/$REPO:ubuntu-22.04-base-clang-12 -docker push $ACCT/$REPO:ubuntu-22.04-base-clang-13 -docker push $ACCT/$REPO:ubuntu-22.04-base-clang-14 -docker push $ACCT/$REPO:ubuntu-22.04-full-clang-14 -docker push $ACCT/$REPO:ubuntu-22.04-built +ARGS="$ARGS_" +ARGS="$ARGS --platform linux/amd64" +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-amd64 $BASEDIR/ubuntu/22.04/base + +# +# L1 - Fully featured image +# + +ARGS="$ARGS_" +ARGS="$ARGS --platform linux/amd64" +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-full-amd64 $BASEDIR/ubuntu/22.04/full + +# +# L2/L3 - Build/Built/Test +# + +ARGS="$ARGS_" +ARGS="$ARGS --platform linux/amd64" +ARGS="$ARGS --build-arg feature=base" +ARGS="$ARGS --build-arg extra_packages_dev=gcc-9" +ARGS="$ARGS --build-arg extra_packages_dev1=g++-9" +ARGS="$ARGS --build-arg cc=gcc-9 --build-arg cxx=g++-9" +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-build-gcc-9-amd64 $BASEDIR/ubuntu/22.04/build +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-built-gcc-9-amd64 $BASEDIR/ubuntu/22.04/built +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-test-gcc-9-amd64 $BASEDIR/ubuntu/22.04/test + +ARGS="$ARGS_" +ARGS="$ARGS --platform linux/amd64" +ARGS="$ARGS --build-arg feature=base" +ARGS="$ARGS --build-arg extra_packages_dev=gcc-12" +ARGS="$ARGS --build-arg extra_packages_dev1=g++-12" +ARGS="$ARGS --build-arg cc=gcc-12 --build-arg cxx=g++-12" +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-build-gcc-12-amd64 $BASEDIR/ubuntu/22.04/build +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-built-gcc-12-amd64 $BASEDIR/ubuntu/22.04/built +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-base-test-gcc-12-amd64 $BASEDIR/ubuntu/22.04/test + +ARGS="$ARGS_" +ARGS="$ARGS --platform linux/amd64" +ARGS="$ARGS --build-arg feature=full" +ARGS="$ARGS --build-arg extra_packages_dev=clang-14" +ARGS="$ARGS --build-arg extra_packages_dev1=llvm-14-dev" +ARGS="$ARGS --build-arg cc=clang-14 --build-arg cxx=clang++-14" +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-full-build-clang-14-amd64 $BASEDIR/ubuntu/22.04/build +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-full-built-clang-14-amd64 $BASEDIR/ubuntu/22.04/built +docker build $ARGS -t $ACCT/$REPO:ubuntu-22.04-full-test-clang-14-amd64 $BASEDIR/ubuntu/22.04/test + +# +# Pushed images +# + +docker push $ACCT/$REPO:ubuntu-22.04-base-build-gcc-9-amd64 +docker push $ACCT/$REPO:ubuntu-22.04-base-built-gcc-9-amd64 + +docker push $ACCT/$REPO:ubuntu-22.04-base-build-gcc-12-amd64 +docker push $ACCT/$REPO:ubuntu-22.04-base-built-gcc-12-amd64 + +docker push $ACCT/$REPO:ubuntu-22.04-full-build-clang-14-amd64 +docker push $ACCT/$REPO:ubuntu-22.04-full-built-clang-14-amd64 ############################################################################### # diff --git a/docker/ubuntu/22.04/base-clang-10/Dockerfile b/docker/ubuntu/22.04/base-clang-10/Dockerfile deleted file mode 100644 index 318067221..000000000 --- a/docker/ubuntu/22.04/base-clang-10/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC clang-10 -ENV CXX clang++-10 - -ENV packages="\ -clang-10 \ -llvm-10-dev \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-clang-11/Dockerfile b/docker/ubuntu/22.04/base-clang-11/Dockerfile deleted file mode 100644 index aff5dedd5..000000000 --- a/docker/ubuntu/22.04/base-clang-11/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC clang-11 -ENV CXX clang++-11 - -ENV packages="\ -clang-11 \ -llvm-11-dev \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-clang-12/Dockerfile b/docker/ubuntu/22.04/base-clang-12/Dockerfile deleted file mode 100644 index 9018b6891..000000000 --- a/docker/ubuntu/22.04/base-clang-12/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC clang-12 -ENV CXX clang++-12 - -ENV packages="\ -clang-12 \ -llvm-12-dev \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-clang-13/Dockerfile b/docker/ubuntu/22.04/base-clang-13/Dockerfile deleted file mode 100644 index eafe4e07b..000000000 --- a/docker/ubuntu/22.04/base-clang-13/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC clang-13 -ENV CXX clang++-13 - -ENV packages="\ -clang-13 \ -llvm-13-dev \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-clang-14/Dockerfile b/docker/ubuntu/22.04/base-clang-14/Dockerfile deleted file mode 100644 index a03e113e1..000000000 --- a/docker/ubuntu/22.04/base-clang-14/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC clang-14 -ENV CXX clang++-14 - -ENV packages="\ -clang-14 \ -llvm-14-dev \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-gcc-10/Dockerfile b/docker/ubuntu/22.04/base-gcc-10/Dockerfile deleted file mode 100644 index 5005366b4..000000000 --- a/docker/ubuntu/22.04/base-gcc-10/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC gcc-10 -ENV CXX g++-10 - -ENV packages="\ -gcc-10 \ -g++-10 \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-gcc-11/Dockerfile b/docker/ubuntu/22.04/base-gcc-11/Dockerfile deleted file mode 100644 index f8ad74e8c..000000000 --- a/docker/ubuntu/22.04/base-gcc-11/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC gcc-11 -ENV CXX g++-11 - -ENV packages="\ -gcc-11 \ -g++-11 \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-gcc-12/Dockerfile b/docker/ubuntu/22.04/base-gcc-12/Dockerfile deleted file mode 100644 index e3e70f8e3..000000000 --- a/docker/ubuntu/22.04/base-gcc-12/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC gcc-12 -ENV CXX g++-12 - -ENV packages="\ -gcc-12 \ -g++-12 \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-gcc-8/Dockerfile b/docker/ubuntu/22.04/base-gcc-8/Dockerfile deleted file mode 100644 index 161b60630..000000000 --- a/docker/ubuntu/22.04/base-gcc-8/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC gcc-8 -ENV CXX g++-8 - -ENV packages="\ -gcc-8 \ -g++-8 \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base-gcc-9/Dockerfile b/docker/ubuntu/22.04/base-gcc-9/Dockerfile deleted file mode 100644 index 8c2034794..000000000 --- a/docker/ubuntu/22.04/base-gcc-9/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-base - -ENV CC gcc-9 -ENV CXX g++-9 - -ENV packages="\ -gcc-9 \ -g++-9 \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/base/Dockerfile b/docker/ubuntu/22.04/base/Dockerfile index 114518d27..02f499b24 100644 --- a/docker/ubuntu/22.04/base/Dockerfile +++ b/docker/ubuntu/22.04/base/Dockerfile @@ -1,41 +1,54 @@ FROM ubuntu:22.04 -ENV DEBIAN_FRONTEND=noninteractive +ARG skiprocks +ARG rocksdb_version 7.4.3 +ARG rocksdb_url + +ENV rocksdb_version ${rocksdb_version} +ENV rocksdb_url https://codeload.github.com/facebook/rocksdb/tar.gz/refs/tags/v${rocksdb_version} ENV packages="\ -autoconf \ -autoconf-archive \ -autoconf2.13 \ -automake \ -autotools-dev \ -build-essential \ ca-certificates \ +libjemalloc2 \ +libboost-chrono1.74 \ +libboost-context1.74 \ +libboost-coroutine1.74 \ +libboost-system1.74 \ +libboost-thread1.74 \ +libicu70 \ +libnss-db \ +libsodium23 \ +libssl3 \ +liblz4-1 \ +libmagic1 \ +libzstd1 \ +" + +ENV packages_rocksdb_dev="\ +build-essential \ cmake \ curl \ git \ +libjemalloc-dev \ +liblz4-dev \ +libzstd-dev \ +xz-utils \ +" + +ENV packages_dev="\ +${packages_rocksdb_dev} \ libboost-chrono1.74-dev \ libboost-context1.74-dev \ libboost-coroutine1.74-dev \ libboost-system1.74-dev \ libboost-thread1.74-dev \ -liblz4-dev \ -libnss-db \ +libicu-dev \ libmagic-dev \ libsodium-dev \ libssl-dev \ -libtool \ -libzstd-dev \ -shtool \ -xz-utils \ " -ENV purges="\ -cmake \ -curl \ -" - -ENV rocks_version=7.4.3 -ENV rocks_cmake="\ +ENV rocksdb_cmake="\ -DCMAKE_RULE_MESSAGES:BOOL=OFF \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DWITH_JNI=0 \ @@ -46,43 +59,54 @@ ENV rocks_cmake="\ -DCMAKE_BUILD_TYPE=Release \ -DWITH_GFLAGS=0 \ -DWITH_LIBURING=0 \ +-DWITH_JEMALLOC=1 \ -DWITH_LZ4=1 \ -DWITH_ZSTD=1 \ -DUSE_RTTI=1 \ -DBUILD_SHARED_LIBS=1 \ " -RUN true \ +ENV do_install true \ +&& export DEBIAN_FRONTEND=noninteractive \ && apt-get update \ -&& apt-get install --no-install-recommends -y ${packages}\ -&& update-ca-certificates \ +&& apt-get install --no-install-recommends -y -f + +ENV do_purge true \ +&& export DEBIAN_FRONTEND=noninteractive \ +&& apt-get purge -y + +ENV do_clean true \ +&& export DEBIAN_FRONTEND=noninteractive \ && apt-get clean \ && apt-get autoremove --purge -y \ && rm -rf /var/lib/apt/lists/* \ +&& true + +RUN true \ +&& eval ${do_install} ${packages} \ +&& update-ca-certificates \ +&& eval ${do_clean} \ && mkdir /build \ && true -ARG skiprocks +WORKDIR /build RUN true \ && if test -n "$skiprocks"; then \ exit 0; \ fi \ +&& eval ${do_install} ${packages_rocksdb_dev} \ && cd /usr/src \ -&& curl -sL https://codeload.github.com/facebook/rocksdb/tar.gz/refs/tags/v${rocks_version} -o rocksdb-${rocks_version}.tar.gz \ -&& tar xfvz rocksdb-${rocks_version}.tar.gz \ -&& rm rocksdb-${rocks_version}.tar.gz \ -&& ln -s /usr/src/rocksdb-${rocks_version} /usr/src/rocksdb \ -&& cd /usr/src/rocksdb-${rocks_version} \ +&& curl -sL ${rocksdb_url} -o rocksdb-${rocksdb_version}.tar.gz \ +&& tar xfvz rocksdb-${rocksdb_version}.tar.gz \ +&& rm rocksdb-${rocksdb_version}.tar.gz \ +&& ln -s /usr/src/rocksdb-${rocksdb_version} /usr/src/rocksdb \ +&& cd /usr/src/rocksdb-${rocksdb_version} \ && \ -CFLAGS="-g0" \ +CFLAGS="-g0 -ftls-model=initial-exec" \ LDFLAGS="-Wl,--strip-all" \ -cmake -H. -Bbuild ${rocks_cmake} \ +cmake -H. -Bbuild ${rocksdb_cmake} \ && cmake --build build --target install --parallel `nproc` \ && rm -rf build \ -&& apt-get purge -y ${purges} \ -&& apt-get clean \ -&& apt-get autoremove --purge -y \ -&& rm -rf /var/lib/apt/lists/* \ +&& eval ${do_purge} ${packages_rocksdb_dev} \ +&& eval ${do_clean} \ && true - -WORKDIR /build diff --git a/docker/ubuntu/22.04/build/Dockerfile b/docker/ubuntu/22.04/build/Dockerfile new file mode 100644 index 000000000..643bdf19f --- /dev/null +++ b/docker/ubuntu/22.04/build/Dockerfile @@ -0,0 +1,35 @@ +ARG acct +ARG repo +ARG feature + +FROM ${acct}/${repo}:ubuntu-22.04-${feature}-${TARGETARCH} + +ARG cc +ARG cxx +ARG extra_packages_dev +ARG extra_packages_dev1 +ARG extra_packages_dev2 +ARG ctor_url https://github.com/matrix-construct/construct + +ENV CC ${cc} +ENV CXX ${cxx} +ENV ctor_url ${ctor_url} + +ENV packages_dev="\ +${packages_dev} \ +autoconf \ +autoconf-archive \ +autoconf2.13 \ +automake \ +autotools-dev \ +libtool \ +shtool \ +${extra_packages_dev} \ +${extra_packages_dev1} \ +${extra_packages_dev2} \ +" + +RUN true \ +&& eval ${do_install} ${packages_dev} \ +&& eval ${do_clean} \ +&& true diff --git a/docker/ubuntu/22.04/built/Dockerfile b/docker/ubuntu/22.04/built/Dockerfile index 4ca112575..41837d7cc 100644 --- a/docker/ubuntu/22.04/built/Dockerfile +++ b/docker/ubuntu/22.04/built/Dockerfile @@ -1,21 +1,37 @@ -FROM jevolk/construct:ubuntu-22.04-full-clang-14 +ARG acct +ARG repo +ARG feature -ENV purges="\ +FROM ${acct}/${repo}:ubuntu-22.04-${feature}-${TARGETARCH} + +ARG cc +ARG cxx +ARG extra_packages_dev +ARG extra_packages_dev1 +ARG extra_packages_dev2 +ARG ctor_url https://github.com/matrix-construct/construct + +ENV CC ${cc} +ENV CXX ${cxx} +ENV ctor_url ${ctor_url} + +ENV packages_dev="\ +${packages_dev} \ autoconf \ autoconf-archive \ autoconf2.13 \ automake \ autotools-dev \ -build-essential \ -clang-14 \ -git \ libtool \ -llvm-14-dev \ shtool \ +${extra_packages_dev} \ +${extra_packages_dev1} \ +${extra_packages_dev2} \ " RUN true \ -&& git clone https://github.com/matrix-construct/construct \ +&& eval ${do_install} ${packages_dev} \ +&& git clone ${ctor_url} construct \ && cd construct \ && rmdir -v deps/rocksdb \ && ln -sv /usr/src/rocksdb deps \ @@ -26,12 +42,6 @@ RUN true \ && cd .. \ && rm -rf construct \ && rm -rf /usr/src/rocksdb* \ -&& apt-get purge -y ${purges} \ -&& apt-get autoremove --purge -y \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -true - -RUN true \ -&& construct -smoketest -debug -nomatrix \ +&& eval ${do_purge} ${packages_dev} \ +&& eval ${do_clean} \ && true diff --git a/docker/ubuntu/22.04/full-clang-14/Dockerfile b/docker/ubuntu/22.04/full-clang-14/Dockerfile deleted file mode 100644 index e921edc98..000000000 --- a/docker/ubuntu/22.04/full-clang-14/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM jevolk/construct:ubuntu-22.04-full - -ENV CC clang-14 -ENV CXX clang++-14 - -ENV packages="\ -clang-14 \ -llvm-14-dev \ -" - -RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean -y \ -&& rm -rf /var/lib/apt/lists/* \ -&& true diff --git a/docker/ubuntu/22.04/full/Dockerfile b/docker/ubuntu/22.04/full/Dockerfile index 683a2b2be..0b05ffcc2 100644 --- a/docker/ubuntu/22.04/full/Dockerfile +++ b/docker/ubuntu/22.04/full/Dockerfile @@ -1,19 +1,20 @@ -FROM jevolk/construct:ubuntu-22.04-base +ARG acct +ARG repo + +FROM ${acct}/${repo}:ubuntu-22.04-base-${TARGETARCH} ENV packages="\ -opencl-headers \ -libgraphicsmagick1-dev \ libgraphicsmagick-q16-3 \ -libicu-dev \ -libjemalloc-dev \ -libopencl-clang-dev \ +libpng16-16 \ +" + +ENV packages_dev="\ +${packages_dev} \ +libgraphicsmagick1-dev \ libpng-dev \ " RUN true \ -&& apt-get update \ -&& apt-get install --no-install-recommends -y ${packages} \ -&& apt-get clean \ -&& apt-get autoremove --purge -y \ -&& rm -rf /var/lib/apt/lists/* \ +&& eval ${do_install} ${packages} \ +&& eval ${do_clean} \ && true diff --git a/docker/ubuntu/22.04/test/Dockerfile b/docker/ubuntu/22.04/test/Dockerfile new file mode 100644 index 000000000..f3a5ec19c --- /dev/null +++ b/docker/ubuntu/22.04/test/Dockerfile @@ -0,0 +1,11 @@ +ARG acct +ARG repo +ARG feature +ARG cc + +FROM ${acct}/${repo}:ubuntu-22.04-${feature}-built-${cc}-${TARGETARCH} + +WORKDIR /root +RUN true \ +&& construct -debug -smoketest localhost \ +&& true