diff --git a/docker/alpine/3.16/base-built/Dockerfile b/docker/alpine/3.16/base-built/Dockerfile new file mode 100644 index 000000000..84a96cd12 --- /dev/null +++ b/docker/alpine/3.16/base-built/Dockerfile @@ -0,0 +1,46 @@ +FROM jevolk/construct:alpine-3.16-base + +ENV packages="\ +${packages_dev} \ +autoconf \ +autoconf-archive \ +autoconf2.13 \ +automake \ +bash \ +binutils-gold \ +curl \ +gcc \ +g++ \ +git \ +libtool \ +make \ +" + +ENV CC gcc +ENV CXX g++ +ENV CONFIG_SHELL /bin/bash +ENV rocks_version 7.4.3 + +RUN true \ +&& apk add --no-cache ${packages} \ +&& mkdir -p /usr/src \ +&& 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 xfz rocksdb-${rocks_version}.tar.gz \ +&& git clone https://github.com/matrix-construct/construct construct \ +&& cd construct \ +&& rmdir -v deps/rocksdb \ +&& ln -sv /usr/src/rocksdb-${rocks_version} deps/rocksdb \ +&& ./autogen.sh \ +&& ./configure \ +&& make -j `nproc` EXTRA_LDFLAGS="-Wl,--strip-all -Wl,--gc-sections" \ +&& make install \ +&& rm /usr/src/rocksdb-${rocks_version}.tar.gz \ +&& rm -rf /usr/src/rocksdb-${rocks_version} \ +&& rm -rf /usr/src/construct \ +&& apk del --purge ${packages} \ +&& true + +RUN true \ +&& construct -smoketest -debug -nomatrix \ +&& true diff --git a/docker/alpine/3.16/base/Dockerfile b/docker/alpine/3.16/base/Dockerfile new file mode 100644 index 000000000..345d6ba55 --- /dev/null +++ b/docker/alpine/3.16/base/Dockerfile @@ -0,0 +1,36 @@ +FROM alpine:3.16.1 + +ENV packages="\ +boost-chrono \ +boost-context \ +boost-coroutine \ +boost-system \ +boost-thread \ +ca-certificates \ +icu \ +libmagic \ +libsodium \ +libstdc++ \ +lz4 \ +openssl \ +rocksdb \ +zstd \ +" + +ENV packages_dev="\ +boost-dev \ +file-dev \ +icu-dev \ +libsodium-dev \ +lz4-dev \ +openssl-dev \ +rocksdb-dev \ +zstd-dev \ +" + +RUN true \ +&& apk add --no-cache ${packages} \ +&& mkdir /build \ +&& true + +WORKDIR /build diff --git a/docker/alpine/3.16/full-built/Dockerfile b/docker/alpine/3.16/full-built/Dockerfile new file mode 100644 index 000000000..004cb4319 --- /dev/null +++ b/docker/alpine/3.16/full-built/Dockerfile @@ -0,0 +1,46 @@ +FROM jevolk/construct:alpine-3.16-full + +ENV packages="\ +${packages_dev} \ +autoconf \ +autoconf-archive \ +autoconf2.13 \ +automake \ +bash \ +binutils-gold \ +curl \ +gcc \ +g++ \ +git \ +libtool \ +make \ +" + +ENV CC gcc +ENV CXX g++ +ENV CONFIG_SHELL /bin/bash +ENV rocks_version 7.4.3 + +RUN true \ +&& apk add --no-cache ${packages} \ +&& mkdir -p /usr/src \ +&& 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 xfz rocksdb-${rocks_version}.tar.gz \ +&& git clone https://github.com/matrix-construct/construct construct \ +&& cd construct \ +&& rmdir -v deps/rocksdb \ +&& ln -sv /usr/src/rocksdb-${rocks_version} deps/rocksdb \ +&& ./autogen.sh \ +&& ./configure \ +&& make -j `nproc` EXTRA_LDFLAGS="-Wl,--strip-all -Wl,--gc-sections" \ +&& make install \ +&& rm /usr/src/rocksdb-${rocks_version}.tar.gz \ +&& rm -rf /usr/src/rocksdb-${rocks_version} \ +&& rm -rf /usr/src/construct \ +&& apk del --purge ${packages} \ +&& true + +RUN true \ +&& construct -smoketest -debug -nomatrix \ +&& true diff --git a/docker/alpine/3.16/full/Dockerfile b/docker/alpine/3.16/full/Dockerfile new file mode 100644 index 000000000..d1dd95380 --- /dev/null +++ b/docker/alpine/3.16/full/Dockerfile @@ -0,0 +1,18 @@ +FROM jevolk/construct:alpine-3.16-base + +ENV packages="\ +freetype \ +graphicsmagick \ +libpng \ +" + +ENV packages_dev="\ +${packages_dev} \ +freetype-dev \ +graphicsmagick-dev \ +libpng-dev \ +" + +RUN true \ +&& apk add --no-cache ${packages} \ +&& true diff --git a/docker/build-and-push-images.sh b/docker/build-and-push-images.sh index 8321792c1..3412de60a 100755 --- a/docker/build-and-push-images.sh +++ b/docker/build-and-push-images.sh @@ -50,3 +50,13 @@ docker push $ACCT/$REPO:ubuntu-22.04-base-gcc-12 #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 + +docker build $ARGS -t $ACCT/$REPO:alpine-3.16-base $BASEDIR/alpine/3.16/base +docker build $ARGS -t $ACCT/$REPO:alpine-3.16-full $BASEDIR/alpine/3.16/full +docker build $ARGS -t $ACCT/$REPO:alpine-3.16-base-built $BASEDIR/alpine/3.16/base-built +docker build $ARGS -t $ACCT/$REPO:alpine-3.16-full-built $BASEDIR/alpine/3.16/full-built + +docker push $ACCT/$REPO:alpine-3.16-base +docker push $ACCT/$REPO:alpine-3.16-full +docker push $ACCT/$REPO:alpine-3.16-base-built +docker push $ACCT/$REPO:alpine-3.16-full-built