diff options
-rw-r--r-- | .github/workflows/release.yml | 1 | ||||
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | docker/alpine-3.17.Dockerfile | 35 |
3 files changed, 39 insertions, 3 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eecca55..ad1f66f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,6 +49,7 @@ jobs: ${{github.workspace}}/build/mscp_${{env.VERSION}}-ubuntu-22.04-x86_64.deb ${{github.workspace}}/build/mscp_${{env.VERSION}}-centos-8-x86_64.rpm ${{github.workspace}}/build/mscp_${{env.VERSION}}-rocky-8.6-x86_64.rpm + ${{github.workspace}}/build/mscp_${{env.VERSION}}-apline-3.17-x86_64.static source-release: runs-on: ubuntu-latest diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a3a950..f6ab756 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,9 +129,9 @@ include(CPack) # Custom targets to build and test mscp in docker containers. # foreach(IN ZIP_LISTS) (cmake >= 3.17) can shorten the following lists. # However, ubuntu 20.04 has cmake 3.16.3. So this is a roundabout trick. -list(APPEND DIST_NAMES ubuntu ubuntu centos rocky) -list(APPEND DIST_VERS 20.04 22.04 8 8.6) -list(APPEND DIST_PKGS deb deb rpm rpm) +list(APPEND DIST_NAMES ubuntu ubuntu centos rocky alpine) +list(APPEND DIST_VERS 20.04 22.04 8 8.6 3.17) +list(APPEND DIST_PKGS deb deb rpm rpm static) list(LENGTH DIST_NAMES _DIST_LISTLEN) math(EXPR DIST_LISTLEN "${_DIST_LISTLEN} - 1") diff --git a/docker/alpine-3.17.Dockerfile b/docker/alpine-3.17.Dockerfile new file mode 100644 index 0000000..56c7ba9 --- /dev/null +++ b/docker/alpine-3.17.Dockerfile @@ -0,0 +1,35 @@ +FROM alpine:3.17 + +# Build mscp with conan to create single binary mscp + +ARG mscpdir="/mscp" + +COPY . ${mscpdir} + +RUN apk add --no-cache \ + gcc make cmake python3 py3-pip perl linux-headers libc-dev \ + openssh bash python3-dev g++ + +RUN pip3 install conan pytest numpy + +# Build mscp as a single binary +RUN conan profile detect --force +RUN cd ${mscpdir} \ + && rm -rf build \ + && conan install . --output-folder=build --build=missing \ + && cd ${mscpdir}/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake \ + -DBUILD_STATIC=ON -DBUILD_CONAN=ON \ + && make \ + && cp mscp /usr/bin/ \ + && cp mscp /mscp/build/mscp_0.0.6-alpine-3.17-x86_64.static + +# copy mscp to PKG FILE NAME because this build doesn't use CPACK + +# preparation for sshd +RUN ssh-keygen -A +RUN mkdir /var/run/sshd \ + && ssh-keygen -f /root/.ssh/id_rsa -N "" \ + && mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys |