diff --git a/cmake/docker/archlinux/Dockerfile b/cmake/docker/archlinux/Dockerfile index 4c47de166b..8e346c58b0 100644 --- a/cmake/docker/archlinux/Dockerfile +++ b/cmake/docker/archlinux/Dockerfile @@ -1,92 +1,11 @@ # Create a virtual environment with all tools installed # ref: https://hub.docker.com/_/archlinux/ -FROM archlinux/base AS env +FROM archlinux/base AS base LABEL maintainer="mizux.dev@gmail.com" # Install system build dependencies -ENV PATH=$PATH:/usr/local/bin +ENV PATH=/usr/local/bin:$PATH RUN pacman -Syu --noconfirm git base-devel cmake CMD [ "/bin/sh" ] - - -# Add the library src to our build env -FROM env AS cpp -# Create lib directory -WORKDIR /home/lib -# Bundle lib source -COPY . . -# CMake version -RUN cmake -version -# CMake configure -RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -# CMake build -RUN cmake --build build --target all -v -# CMake build -RUN cmake --build build --target install - - - -# Add the library src to our build env -FROM env AS python -# Swig install +FROM base AS swig RUN pacman -Syu --noconfirm swig -# Python install -RUN pacman -Syu --noconfirm python python-pip -# Create lib directory -WORKDIR /home/lib -# Bundle lib source -COPY . . -# CMake configure -RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON -# CMake build -RUN cmake --build build --target all -v -# CMake build -RUN cmake --build build --target install - - - -# Add the library src to our build env -FROM env AS java -# Swig install -RUN pacman -Syu --noconfirm swig -# Java install -RUN pacman -Syu --noconfirm jdk-openjdk -# Create lib directory -WORKDIR /home/lib -# Bundle lib source -COPY . . -# CMake configure -RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON -# CMake build -RUN cmake --build build --target all -v -# CMake build -RUN cmake --build build --target install - - - -# Add the library src to our build env -FROM env AS dotnet -# Swig install -RUN pacman -Syu --noconfirm swig -# .Net install -RUN pacman -Syu --noconfirm dotnet-sdk -# Create lib directory -WORKDIR /home/lib -# Bundle lib source -COPY . . -# CMake configure -RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON -# CMake build -RUN cmake --build build --target all -v -# CMake build -RUN cmake --build build --target install - - - -# Create an install image -FROM env AS install_cpp -# Copy lib from devel to prod -COPY --from=cpp /usr/local /usr/local/ -# Copy sample -WORKDIR /home/sample -COPY ci/sample . diff --git a/cmake/docker/archlinux/cpp.Dockerfile b/cmake/docker/archlinux/cpp.Dockerfile new file mode 100644 index 0000000000..bb87b1ff07 --- /dev/null +++ b/cmake/docker/archlinux/cpp.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools:archlinux_base AS env +RUN cmake -version + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DEPS=ON +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN cmake --build build --target test + +FROM env AS install_env +COPY --from=build /usr/local /usr/local/ + +FROM install_env AS install_devel +WORKDIR /home/sample +COPY ci/sample . + +FROM install_devel AS install_build +RUN cmake -S. -Bbuild +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM install_build AS install_test +RUN cmake --build build --target test diff --git a/cmake/docker/archlinux/dotnet.Dockerfile b/cmake/docker/archlinux/dotnet.Dockerfile new file mode 100644 index 0000000000..b3e27ef397 --- /dev/null +++ b/cmake/docker/archlinux/dotnet.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools:archlinux_swig AS env +RUN pacman -Syu --noconfirm dotnet-sdk + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN cmake --build build --target test + +FROM env AS install_env +COPY --from=build /usr/local /usr/local/ + +FROM install_env AS install_devel +WORKDIR /home/sample +COPY ci/sample . + +FROM install_devel AS install_build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM install_build AS install_test +RUN cmake --build build --target test diff --git a/cmake/docker/archlinux/java.Dockerfile b/cmake/docker/archlinux/java.Dockerfile new file mode 100644 index 0000000000..8d70119152 --- /dev/null +++ b/cmake/docker/archlinux/java.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools:archlinux_swig AS env +RUN pacman -Syu --noconfirm jdk-openjdk maven + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN cmake --build build --target test + +FROM env AS install_env +COPY --from=build /usr/local /usr/local/ + +FROM install_env AS install_devel +WORKDIR /home/sample +COPY ci/sample . + +FROM install_devel AS install_build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM install_build AS install_test +RUN cmake --build build --target test diff --git a/cmake/docker/archlinux/python.Dockerfile b/cmake/docker/archlinux/python.Dockerfile new file mode 100644 index 0000000000..ab870c4312 --- /dev/null +++ b/cmake/docker/archlinux/python.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools:archlinux_swig AS env +RUN pacman -Syu --noconfirm python python-pip + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN cmake --build build --target test + +FROM env AS install_env +COPY --from=build /usr/local /usr/local/ + +FROM install_env AS install_devel +WORKDIR /home/sample +COPY ci/sample . + +FROM install_devel AS install_build +RUN cmake -S. -Bbuild +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM install_build AS install_test +RUN cmake --build build --target test