From 25207cf865dfaefbb6c4a20949b78a239ee83c66 Mon Sep 17 00:00:00 2001 From: Ryo Nakamura Date: Sun, 4 Feb 2024 11:35:20 +0900 Subject: build deb sources inside a container A new build target `build-deb` builds mscp deb inside a docker container. All debuild -us -uc outputs are copied to build/debbuild directory. --- CMakeLists.txt | 15 +++++++++++++++ docker/build-deb.Dockerfile | 20 ++++++++++++++++++++ scripts/install-build-deps.sh | 2 +- 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 docker/build-deb.Dockerfile diff --git a/CMakeLists.txt b/CMakeLists.txt index bd6301d..66b0a11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -264,6 +264,20 @@ add_custom_target(docker-test-all DEPENDS ${DOCKER_TESTS}) add_custom_target(docker-pkg-all DEPENDS ${DOCKER_PKGS}) +### debuild-related fefinitions + +set(DEBBUILDCONTAINER mscp-build-deb) +add_custom_target(build-deb + COMMENT "build mscp deb files inside a container" + WORKING_DIRECTORY ${mscp_SOURCE_DIR} + BYPRODUCTS ${CMAKE_BINARY_DIR}/debbuild + COMMAND + docker build -t ${DEBBUILDCONTAINER} -f docker/build-deb.Dockerfile . + COMMAND + docker run --rm -v ${CMAKE_BINARY_DIR}:/out ${DEBBUILDCONTAINER} + cp -r /debbuild /out/) + + ### rpmbuild-related definitions # generate files for rpmbuild @@ -289,3 +303,4 @@ add_custom_target(build-srpm docker run --rm -v ${CMAKE_BINARY_DIR}:/out ${RPMBUILDCONTAINER} cp /root/rpmbuild/SRPMS/${SRPMFILE} /out/) + diff --git a/docker/build-deb.Dockerfile b/docker/build-deb.Dockerfile new file mode 100644 index 0000000..e3e6381 --- /dev/null +++ b/docker/build-deb.Dockerfile @@ -0,0 +1,20 @@ +FROM ubuntu:22.04 + +ARG DEBIAN_FRONTEND=noninteractive +RUN set -ex && apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates build-essential devscripts debhelper gcc make cmake + +ARG mscpdir="/debbuild/mscp" + +COPY . ${mscpdir} + +# install build dependency +RUN ${mscpdir}/scripts/install-build-deps.sh + +# build +RUN cd ${mscpdir} \ + && debuild -us -uc \ + && mv ${mscpdir} / + +# Then all debuild output files exsit at /debbuild + diff --git a/scripts/install-build-deps.sh b/scripts/install-build-deps.sh index 92ee42b..5c46a61 100755 --- a/scripts/install-build-deps.sh +++ b/scripts/install-build-deps.sh @@ -19,7 +19,7 @@ case $platform in brew install openssl@1.1 ;; Linux-ubuntu*) - apt-get install -y \ + apt-get install --no-install-recommends -y \ gcc make cmake zlib1g-dev libssl-dev libkrb5-dev ;; Linux-centos* | Linux-rhel* | Linux-rocky* | Linux-almalinux) -- cgit v1.2.3