From df404ec3c6e8e4d218b9742110b52d32bde34a41 Mon Sep 17 00:00:00 2001 From: Ryo Nakamura Date: Sun, 6 Nov 2022 16:00:18 +0900 Subject: cleanup docker files and build/test procedure --- docker/Dockerfile-centos-8 | 24 ------------------------ docker/Dockerfile-test | 30 ------------------------------ docker/Dockerfile-ubuntu-20.04 | 19 ------------------- docker/Dockerfile-ubuntu-22.04 | 19 ------------------- docker/README.md | 32 +++++++++++++++++++------------- docker/centos-8.Dockerfile | 35 +++++++++++++++++++++++++++++++++++ docker/ubuntu-20.04.Dockerfile | 34 ++++++++++++++++++++++++++++++++++ docker/ubuntu-22.04.Dockerfile | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 122 insertions(+), 105 deletions(-) delete mode 100644 docker/Dockerfile-centos-8 delete mode 100644 docker/Dockerfile-test delete mode 100644 docker/Dockerfile-ubuntu-20.04 delete mode 100644 docker/Dockerfile-ubuntu-22.04 create mode 100644 docker/centos-8.Dockerfile create mode 100644 docker/ubuntu-20.04.Dockerfile create mode 100644 docker/ubuntu-22.04.Dockerfile (limited to 'docker') diff --git a/docker/Dockerfile-centos-8 b/docker/Dockerfile-centos-8 deleted file mode 100644 index 8210eca..0000000 --- a/docker/Dockerfile-centos-8 +++ /dev/null @@ -1,24 +0,0 @@ -FROM centos:8 - -ARG mscpdir="/mscp" - -COPY . ${mscpdir} - -# from https://stackoverflow.com/questions/70963985/error-failed-to-download-metadata-for-repo-appstream-cannot-prepare-internal -RUN cd /etc/yum.repos.d/ -RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* -RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* - -RUN set -ex && yum -y update && yum -y install \ - rpm-build - -RUN ${mscpdir}/install-build-deps.sh - -RUN cd ${mscpdir} \ - && rm -rf build - -RUN cd ${mscpdir} \ - && cmake -B build -DBUILD_PKG=1 \ - && cd ${mscpdir}/build \ - && cpack -G RPM CPackConfig.cmake - diff --git a/docker/Dockerfile-test b/docker/Dockerfile-test deleted file mode 100644 index f4d44c7..0000000 --- a/docker/Dockerfile-test +++ /dev/null @@ -1,30 +0,0 @@ -FROM ubuntu:latest - -ARG DEBIAN_FRONTEND=noninteractive -ARG mscpdir="/mscp" - -COPY . ${mscpdir} - -RUN set -ex && apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates - -# install numpy and pytest, and sshd for test -RUN apt-get install -y --no-install-recommends \ - python3 python3-pip openssh-server - -RUN python3 -m pip install numpy pytest - - -# preparation for sshd -RUN mkdir /var/run/sshd \ - && ssh-keygen -f /root/.ssh/id_rsa -N "" \ - && mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys - - -# build -RUN ${mscpdir}/install-build-deps.sh - -RUN cd ${mscpdir} \ - && rm -rf build \ - && mkdir build && cd build \ - && cmake .. && make diff --git a/docker/Dockerfile-ubuntu-20.04 b/docker/Dockerfile-ubuntu-20.04 deleted file mode 100644 index 687072c..0000000 --- a/docker/Dockerfile-ubuntu-20.04 +++ /dev/null @@ -1,19 +0,0 @@ -FROM ubuntu:20.04 - -ARG DEBIAN_FRONTEND=noninteractive -ARG mscpdir="/mscp" - -COPY . ${mscpdir} - -RUN set -ex && apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates - -RUN ${mscpdir}/install-build-deps.sh - -RUN cd ${mscpdir} \ - && rm -rf build - -RUN cd ${mscpdir} \ - && cmake -B build -DBUILD_PKG=1 \ - && cd ${mscpdir}/build \ - && cpack -G DEB CPackConfig.cmake diff --git a/docker/Dockerfile-ubuntu-22.04 b/docker/Dockerfile-ubuntu-22.04 deleted file mode 100644 index 59a57d2..0000000 --- a/docker/Dockerfile-ubuntu-22.04 +++ /dev/null @@ -1,19 +0,0 @@ -FROM ubuntu:22.04 - -ARG DEBIAN_FRONTEND=noninteractive -ARG mscpdir="/mscp" - -COPY . ${mscpdir} - -RUN set -ex && apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates - -RUN ${mscpdir}/install-build-deps.sh - -RUN cd ${mscpdir} \ - && rm -rf build - -RUN cd ${mscpdir} \ - && cmake -B build -DBUILD_PKG=1 \ - && cd ${mscpdir}/build \ - && cpack -G DEB CPackConfig.cmake diff --git a/docker/README.md b/docker/README.md index 8576acd..6ed88d8 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,31 +1,37 @@ -Build `mscp` in docker containers. +Build docker containers. ```console cd .. -docker build -t mscp-ubuntu:20.04 -f docker/Dockerfile-ubuntu-20.04 . -docker run -it --rm -v (pwd):/out mscp-ubuntu:20.04 \ - cp /mscp/build/mscp_0.0.0-ubuntu-20.04-x86_64.deb /out/ +docker build -t mscp-ubuntu:20.04 -f docker/ubuntu-20.04.Dockerfile . docker build -t mscp-ubuntu:22.04 -f docker/Dockerfile-ubuntu-22.04 . -docker run -it --rm -v (pwd):/out mscp-ubuntu:22.04 \ - cp /mscp/build/mscp_0.0.0-ubuntu-22.04-x86_64.deb /out/ docker build -t mscp-centos:8 -f docker/Dockerfile-centos-8 . -docker run -it --rm -v (pwd):/out mscp-centos:8 \ - cp /mscp/build/mscp_0.0.0-centos-8-x86_64.rpm /out/ ``` +Test `mscp` in the containers. + +```console +docker run --init --rm mscp-ubuntu:20.04 /build/mscp/scripts/test-in-container.sh + +docker run --init --rm mscp-ubuntu:22.04 /build/mscp/scripts/test-in-container.sh -Test `mscp` in a ubuntu:latest docker container. +docker run --init --rm mscp-centos:8 /build/mscp/scripts/test-in-container.sh +``` + +Retrieve deb/rpm packages. ```console -cd .. +docker run --rm -v (pwd):/out mscp-ubuntu:20.04 \ + cp /mscp/build/mscp_0.0.0-ubuntu-20.04-x86_64.deb /out/ -docker build --rm -t mscp-test -f docker/Dockerfile-test . +docker run --rm -v (pwd):/out mscp-ubuntu:22.04 \ + cp /mscp/build/mscp_0.0.0-ubuntu-22.04-x86_64.deb /out/ -docker run --init --rm mscp-test bash -c "/usr/sbin/sshd; cd /mscp/build; ctest --verbose" +docker run --rm -v (pwd):/out mscp-centos:8 \ + cp /mscp/build/mscp_0.0.0-centos-8-x86_64.rpm /out/ ``` -I don't know whether these these are good way. \ No newline at end of file +I don't know whether these are good way. \ No newline at end of file diff --git a/docker/centos-8.Dockerfile b/docker/centos-8.Dockerfile new file mode 100644 index 0000000..3d60c72 --- /dev/null +++ b/docker/centos-8.Dockerfile @@ -0,0 +1,35 @@ +FROM centos:8 + +ARG mscpdir="/mscp" + +COPY . ${mscpdir} + +# from https://stackoverflow.com/questions/70963985/error-failed-to-download-metadata-for-repo-appstream-cannot-prepare-internal +RUN cd /etc/yum.repos.d/ +RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* +RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* + +# install numpy and pytest, sshd for test, and rpm-build +RUN set -ex && yum -y update && yum -y install \ + python3 python3-pip openssh openssh-server openssh-clients rpm-build + +RUN python3 -m pip install numpy pytest + + +# preparation for sshd +RUN mkdir /var/run/sshd \ + && ssh-keygen -A \ + && ssh-keygen -f /root/.ssh/id_rsa -N "" \ + && mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys + +# install build dependency +RUN ${mscpdir}/scripts/install-build-deps.sh + +# build +RUN cd ${mscpdir} \ + && rm -rf build \ + && cmake -B build -DBUILD_PKG=1 \ + && cd ${mscpdir}/build \ + && make \ + && cpack -G RPM CPackConfig.cmake + diff --git a/docker/ubuntu-20.04.Dockerfile b/docker/ubuntu-20.04.Dockerfile new file mode 100644 index 0000000..9fdeea3 --- /dev/null +++ b/docker/ubuntu-20.04.Dockerfile @@ -0,0 +1,34 @@ +FROM ubuntu:20.04 + +ARG DEBIAN_FRONTEND=noninteractive +ARG mscpdir="/mscp" + +COPY . ${mscpdir} + +RUN set -ex && apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates + +# install numpy and pytest, and sshd for test +RUN apt-get install -y --no-install-recommends \ + python3 python3-pip openssh-server + +RUN python3 -m pip install numpy pytest + + +# preparation for sshd +RUN mkdir /var/run/sshd \ + && ssh-keygen -f /root/.ssh/id_rsa -N "" \ + && mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys + + +# install build dependency +RUN ${mscpdir}/scripts/install-build-deps.sh + + +# build +RUN cd ${mscpdir} \ + && rm -rf build \ + && cmake -B build -DBUILD_PKG=1 \ + && cd ${mscpdir}/build \ + && make \ + && cpack -G DEB CPackConfig.cmake diff --git a/docker/ubuntu-22.04.Dockerfile b/docker/ubuntu-22.04.Dockerfile new file mode 100644 index 0000000..0f4ab9c --- /dev/null +++ b/docker/ubuntu-22.04.Dockerfile @@ -0,0 +1,34 @@ +FROM ubuntu:22.04 + +ARG DEBIAN_FRONTEND=noninteractive +ARG mscpdir="/mscp" + +COPY . ${mscpdir} + +RUN set -ex && apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates + +# install numpy and pytest, and sshd for test +RUN apt-get install -y --no-install-recommends \ + python3 python3-pip openssh-server + +RUN python3 -m pip install numpy pytest + + +# preparation for sshd +RUN mkdir /var/run/sshd \ + && ssh-keygen -f /root/.ssh/id_rsa -N "" \ + && mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys + + +# install build dependency +RUN ${mscpdir}/scripts/install-build-deps.sh + + +# build +RUN cd ${mscpdir} \ + && rm -rf build \ + && cmake -B build -DBUILD_PKG=1 \ + && cd ${mscpdir}/build \ + && make \ + && cpack -G DEB CPackConfig.cmake -- cgit v1.2.3