From fc84084658ea8bec91c29ca7ebb9f8143b97e9f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 16:44:02 +0200 Subject: [PATCH 01/17] Add support for official docker images for yacreaderlibraryserver --- azure-pipelines.yml | 57 ++++++++++++++++++++- docker/Dockerfile | 102 ++++++++++++++++++++++++++++++++++++++ docker/Dockerfile.aarch64 | 91 ++++++++++++++++++++++++++++++++++ docker/root.tar.gz | Bin 0 -> 1864 bytes 4 files changed, 248 insertions(+), 2 deletions(-) create mode 100644 docker/Dockerfile create mode 100644 docker/Dockerfile.aarch64 create mode 100644 docker/root.tar.gz diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 055289ac..060d2e93 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -302,6 +302,34 @@ jobs: vc_redist_file_name: 'vc_redist.x86.exe' vc_vars: 'vcvars32.bat' +# +# Docker +# + +- job: BuildDockerImages + displayName: 'Build Docker Images' + pool: + vmImage: 'ubuntu-latest' + steps: + - task: UseDocker@0 + displayName: 'Set up Docker Buildx' + inputs: + command: 'setupBuildx' + buildxVersion: 'latest' + + - script: | + docker buildx create --use + docker buildx inspect --bootstrap + displayName: 'Create and Inspect Buildx Builder' + + - script: | + docker buildx build --no-cache --platform linux/amd64,linux/arm64 \ + --file $(Build.SourcesDirectory)/docker/Dockerfile \ + --file $(Build.SourcesDirectory)/docker/Dockerfile.aarch64 \ + -t yacreaderlibraryserver:develop \ + --output type=docker,dest=$(Build.ArtifactStagingDirectory)/multiarch.tar + displayName: 'Build and Push Multi-Platform Docker Image' + # # Dev builds publication # @@ -317,6 +345,7 @@ jobs: - Windows_x86 - Windows_x64 - Windows_x64_qt6 + - BuildDockerImages condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop'), true) variables: - group: github-releases @@ -327,6 +356,9 @@ jobs: inputs: buildType: 'current' targetPath: $(Build.ArtifactStagingDirectory) + - script: | + docker load -i $(Build.ArtifactStagingDirectory)/multiarch.tar + displayName: 'Load Multi-Platform Docker Image' - script: | find $(Build.ArtifactStagingDirectory) -name '*.*' -exec cp {} $(Build.ArtifactStagingDirectory) \; displayName: 'flatten artifact staging directory' @@ -334,7 +366,15 @@ jobs: VERSION="$(cat common/yacreader_global.h | grep '#define VERSION "' | tr -d '#define VERSION' | tr -d '"' ).$(Build.BuildNumber)" echo "##vso[task.setvariable variable=VERSION]$VERSION" displayName: 'Version' - - task: GitHubRelease@0 + - task: Docker@2 + displayName: 'Push Multi-Platform Docker Image' + inputs: + command: 'push' + repository: yacreaderlibraryserver + tags: | + develop + containerRegistry: $(docker-hub) + - task: GitHubRelease@1 inputs: gitHubConnection: yacreader-releases repositoryName: YACReader/yacreader-dev-builds @@ -359,6 +399,7 @@ jobs: - Windows_x86 - Windows_x64 - Windows_x64_qt6 + - BuildDockerImages condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) variables: - group: github-releases @@ -369,6 +410,9 @@ jobs: inputs: buildType: 'current' targetPath: $(Build.ArtifactStagingDirectory) + - script: | + docker load -i $(Build.ArtifactStagingDirectory)/multiarch.tar + displayName: 'Load Multi-Platform Docker Image' - script: | find $(Build.ArtifactStagingDirectory) -name '*.*' -exec cp {} $(Build.ArtifactStagingDirectory) \; displayName: 'flatten artifact staging directory' @@ -376,7 +420,16 @@ jobs: VERSION="$(cat common/yacreader_global.h | grep '#define VERSION "' | tr -d '#define VERSION' | tr -d '"' )" echo "##vso[task.setvariable variable=VERSION]$VERSION" displayName: 'Version' - - task: GitHubRelease@0 + - task: Docker@2 + displayName: 'Push Multi-Platform Docker Image' + inputs: + command: 'push' + repository: yacreaderlibraryserver + tags: | + latest + $(VERSION) + containerRegistry: $(docker-hub) + - task: GitHubRelease@1 inputs: gitHubConnection: yacreader-releases title: $(VERSION) diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..43fb3517 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,102 @@ +FROM ghcr.io/linuxserver/baseimage-ubuntu:noble + +# version, it can be a TAG or a branch +ARG YACR_VERSION="develop" + +# env variables +ARG DEBIAN_FRONTEND="noninteractive" +ENV APPNAME="YACReaderLibraryServer" +ENV HOME="/config" +LABEL maintainer="luisangelsm" + +# install build & runtime packages +RUN \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + desktop-file-utils \ + gcc \ + g++ \ + git \ + qt6-tools-dev \ + qt6-base-dev-tools \ + qmake6 \ + qmake6-bin \ + qt6-base-dev \ + qt6-multimedia-dev \ + qt6-tools-dev-tools \ + libgl-dev \ + qt6-l10n-tools \ + libqt6opengl6-dev \ + libunarr-dev \ + qt6-declarative-dev \ + libqt6svg6-dev \ + libqt6core5compat6-dev \ + libbz2-dev \ + libglu1-mesa-dev \ + liblzma-dev \ + libqt6gui6 \ + libqt6multimedia6 \ + libqt6network6 \ + libqt6qml6 \ + libqt6quickcontrols2-6 \ + qt6-image-formats-plugins \ + libqt6sql6 \ + libqt6sql6-sqlite \ + make \ + sqlite3 \ + libsqlite3-dev \ + unzip \ + wget \ + 7zip \ + 7zip-rar \ + libpoppler-qt6-dev \ + zlib1g-dev && \ + ldconfig + + +# clone YACReader repo +RUN git clone https://github.com/YACReader/yacreader.git /src/git && \ + cd /src/git && \ + git checkout $YACR_VERSION + +# get 7zip source +RUN cd /src/git/compressed_archive && \ + wget "https://github.com/YACReader/yacreader-7z-deps/blob/main/7z2301-src.7z?raw=true" -O /src/git/compressed_archive/7z2301-src.7z && \ + 7z x /src/git/compressed_archive/7z2301-src.7z -o/src/git/compressed_archive/lib7zip + +# build yacrederlibraryserver +RUN cd /src/git/YACReaderLibraryServer && \ + # qtchooser -list-versions && \ + qmake6 PREFIX=/app CONFIG+="7zip server_standalone" YACReaderLibraryServer.pro && \ + qmake6 -v && \ + make && \ + make install + +# clean up +RUN cd / && \ + apt-get clean && \ + apt-get purge -y build-essential g++ gcc git make qmake6 qtchooser unzip wget && \ + apt-get -y autoremove && \ + apt-get install -y --no-install-recommends \ + dos2unix \ + libqt6core5compat6-dev \ + libpoppler-qt6-dev && \ + rm -rf \ + /src \ + /tmp/* \ + /var/cache/apt \ + /var/lib/apt/lists/* + +# set ENV +ENV LC_ALL="en_US.UTF-8" \ + PATH="/app/bin:${PATH}" + +# copy files +COPY root.tar.gz / +# Extract the contents of root.tar.gz into the / directory +RUN tar -xvpzf /root.tar.gz -C / + +# ports and volumes +EXPOSE 8080 +VOLUME ["/config", "/comics"] diff --git a/docker/Dockerfile.aarch64 b/docker/Dockerfile.aarch64 new file mode 100644 index 00000000..f7bc72ee --- /dev/null +++ b/docker/Dockerfile.aarch64 @@ -0,0 +1,91 @@ +FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble + +# version, it can be a TAG or a branch +ARG YACR_VERSION="develop" + +# env variables +ARG DEBIAN_FRONTEND="noninteractive" +ENV APPNAME="YACReaderLibraryServer" +ENV HOME="/config" +LABEL maintainer="luisangelsm" + +# install build & runtime packages +RUN \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + desktop-file-utils \ + g++ \ + git \ + libglu1-mesa-dev \ + libpoppler-qt5-dev \ + libpoppler-qt5-1 \ + libqt5core5a \ + libqt5gui5 \ + libqt5multimedia5 \ + libqt5network5 \ + libqt5opengl5-dev \ + libqt5qml5 \ + libqt5quickcontrols2-5 \ + libqt5script5 \ + libqt5sql5-sqlite \ + libqt5sql5 \ + libqt5svg5-dev \ + libsqlite3-dev \ + make \ + 7zip \ + 7zip-rar \ + qtchooser \ + qtbase5-dev-tools \ + qt5-qmake \ + qtbase5-dev \ + qtmultimedia5-dev \ + qt5-image-formats-plugins \ + qtdeclarative5-dev \ + qtquickcontrols2-5-dev \ + qtscript5-dev \ + qttools5-dev-tools \ + sqlite3 \ + unzip \ + wget && \ + ldconfig + +# clone YACReader repo +RUN git clone https://github.com/YACReader/yacreader.git /src/git && \ + cd /src/git && \ + git checkout $YACR_VERSION + +# get 7zip source +RUN cd /src/git/compressed_archive && \ + wget "https://github.com/YACReader/yacreader-7z-deps/blob/main/7z2301-src.7z?raw=true" -O /src/git/compressed_archive/7z2301-src.7z && \ + 7z x /src/git/compressed_archive/7z2301-src.7z -o/src/git/compressed_archive/lib7zip + +# build yacreaderlibraryserver +RUN cd /src/git/YACReaderLibraryServer && \ + qmake PREFIX=/app CONFIG+="7zip server_standalone" YACReaderLibraryServer.pro && \ + make && \ + make install + +# clean up +RUN cd / && \ + apt-get clean && \ + apt-get purge -y build-essential g++ git make qt5-qmake unzip wget && \ + apt-get -y autoremove && \ + rm -rf \ + /src \ + /tmp/* \ + /var/cache/apt \ + /var/lib/apt/lists/* + +# set ENV +ENV LC_ALL="en_US.UTF-8" \ + PATH="/app/bin:${PATH}" + +# copy files +COPY root.tar.gz / +# Extract the contents of root.tar.gz into the / directory +RUN tar -xvpzf /root.tar.gz -C / + +# ports and volumes +EXPOSE 8080 +VOLUME ["/config", "/comics"] diff --git a/docker/root.tar.gz b/docker/root.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..37913304531088730b1bb5cc64735403b189e9d4 GIT binary patch literal 1864 zcmV-O2eyNICK9-oplL7%*Trw<{Sb*_rDkwk10Xmhwp=S)}-3zlWrFNGBwHoJWG2 zJ2!_V@m*J)ZQpg~&og%Hj_0@Cj^jF=9m}?DtGxs64c6&`oC}-*?2H&+df%$}|0&^2 z|2L1nIV3nF+4uA`!`b+NGP8M)EYh zQ>KY17pj006hs8GJbliDyaz{JTPcrXeEx$pKl%b^;wAlsblXm86DsDA{G1bhIsDa7 z6~~J#P)ynE+O<%cWTN}PdSJ=2IpLfpjGrKKp3)2pdGU(Ir2D|@Ofy4Ag2ZWr1(A0J zI2e+mFxx9)SH91S#OStVtPK&tO?LeS)%$iD| zoRUq-SgF6g*#14&vGntQ6C{lAp?p-o?Rsc#hjrS2o^Dpg%J%Qti|ya`b^C7wa~%W7 za;7_oyUCjJZ&b#L_TTnBckcPGX#Z{P|7(WbPtBZX<|$?785Kh#NSGjO1gDq}5qk0Z z`P1&bck1-Wcxc=2(Titg$g_(OG{}-Xjgt_J1dIW+?y1NY;L`vp^O?ouD(3Yp29aQx zzq^8pBsd-54D2^(wsEZ1b>B{nCN}0h$I(4fIlZDE|PcXSSs=H+#XqtUlKUHE`&q-PTo~+4U zaakUVfJs?TnXYHbOI333xcEdS>K&FB6M6V@?pVeF+C&SfxGA;WAdCB@MYPasX)}=1 z@R6$iy*(N#(~%~#U&ahRh#8bI>s7Lakf1SXJKfg3y$}lmUwrmvUxv~?934sXd{;)l zZ$Y;UE&HKwwO}&2BEoyvf|C>Y{Buyr_Hu?}0!F-F#^Wp=`H{TiD-c7%3PGmk{?8x3 z|MSPMAII;X^4~g=qV>bki_XVd2YL&uM+6fb7=>Ze+g+sFefmgoC+8Uk@82TS}frQ5oP&#xvFqL z6SI$h-d(8b4cGGn9;YdXGa5y}5&@@Vh(`p1B+E!3qA{p}LVmc#n_4^1&FlHsZ5woB zzkj3qMW?|dLQnVbl?YCC%2r-e_!=tIR^uiV`} z=bsJI|J);2-@A$1w_0E+u8;S@ zAm=22U^wsEdG{W^m}WJ57hA~;r|DMmnVQOGS>1L^xtrAK|Eu}~YxsXWU(f#=VGH^f z_m*AQ)n!!I-?MBz{x`xk`twn+HTPc~|G($z_TLCK^sl@fxQ74Fb+!Mm5u$_*^mP8? zrAGU&yd7{=`|o(|#rEH^_5R;Rkn?{v_g9myh%#~t#tSt^JtT6bPXYm4NCU_~BiV}=KEes?CP*05+pr3tBxI(dquv9Tg;!h#_Q z-hv?~gACf11;!buZ}+NFT1?Ipe}Q7&Jyg4V)Yp4ks^F(tl0ur%5sk=za8Q#;s2{pI7?i2pv89q4?Z5JNkh<&t`uXqX*ZLHlkEXPSyE^Z%7T zJwtZ(n|%ema{q68j@8lQe-o^!|3+JYtB?P-UiKz9Rk9q2h|DOK;UyZP){?$7C1#0+ze7~dn|0Y;d z|0Vu_)n(Ms-*dG78jVJy(P%UpjYgx Date: Sat, 21 Sep 2024 16:52:20 +0200 Subject: [PATCH 02/17] Fix task in BuildDockerImages --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 060d2e93..4ab73745 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -311,7 +311,7 @@ jobs: pool: vmImage: 'ubuntu-latest' steps: - - task: UseDocker@0 + - task: Docker@2 displayName: 'Set up Docker Buildx' inputs: command: 'setupBuildx' From c64f3fcaf4dbf5e9612cd4d17eaa3b5755ace330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 17:00:45 +0200 Subject: [PATCH 03/17] Try to not use Docker@2 for building --- azure-pipelines.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4ab73745..a2f2d4b7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -311,11 +311,10 @@ jobs: pool: vmImage: 'ubuntu-latest' steps: - - task: Docker@2 + - script: | + docker buildx create --use + docker buildx inspect --bootstrap displayName: 'Set up Docker Buildx' - inputs: - command: 'setupBuildx' - buildxVersion: 'latest' - script: | docker buildx create --use From 6ca4f72e5b2dff3fd92e16ecf20678ef951f9328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 17:04:33 +0200 Subject: [PATCH 04/17] Fix buildx --- azure-pipelines.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a2f2d4b7..3b55a7c3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -308,6 +308,7 @@ jobs: - job: BuildDockerImages displayName: 'Build Docker Images' + dependsOn: CodeFormatValidation pool: vmImage: 'ubuntu-latest' steps: @@ -316,17 +317,13 @@ jobs: docker buildx inspect --bootstrap displayName: 'Set up Docker Buildx' - - script: | - docker buildx create --use - docker buildx inspect --bootstrap - displayName: 'Create and Inspect Buildx Builder' - - script: | docker buildx build --no-cache --platform linux/amd64,linux/arm64 \ --file $(Build.SourcesDirectory)/docker/Dockerfile \ --file $(Build.SourcesDirectory)/docker/Dockerfile.aarch64 \ -t yacreaderlibraryserver:develop \ - --output type=docker,dest=$(Build.ArtifactStagingDirectory)/multiarch.tar + --output type=docker,dest=$(Build.ArtifactStagingDirectory)/multiarch.tar \ + $(Build.SourcesDirectory)/docker displayName: 'Build and Push Multi-Platform Docker Image' # From a99136c7ad703d13ac9a90d4dd427faece2f06b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 18:05:04 +0200 Subject: [PATCH 05/17] Export using type=oci --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3b55a7c3..1a7245f6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -322,7 +322,7 @@ jobs: --file $(Build.SourcesDirectory)/docker/Dockerfile \ --file $(Build.SourcesDirectory)/docker/Dockerfile.aarch64 \ -t yacreaderlibraryserver:develop \ - --output type=docker,dest=$(Build.ArtifactStagingDirectory)/multiarch.tar \ + --output type=oci,dest=$(Build.ArtifactStagingDirectory)/multiarch.tar \ $(Build.SourcesDirectory)/docker displayName: 'Build and Push Multi-Platform Docker Image' From b4981045d4b4dc33a3009fd0e963c71c1cdc4660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 19:51:44 +0200 Subject: [PATCH 06/17] Fix images building --- azure-pipelines.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1a7245f6..4977b811 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -318,12 +318,13 @@ jobs: displayName: 'Set up Docker Buildx' - script: | - docker buildx build --no-cache --platform linux/amd64,linux/arm64 \ - --file $(Build.SourcesDirectory)/docker/Dockerfile \ - --file $(Build.SourcesDirectory)/docker/Dockerfile.aarch64 \ - -t yacreaderlibraryserver:develop \ - --output type=oci,dest=$(Build.ArtifactStagingDirectory)/multiarch.tar \ - $(Build.SourcesDirectory)/docker + docker buildx build --no-cache --platform linux/amd64 -f $(Build.SourcesDirectory)/docker/Dockerfile -t yacreaderlibraryserver:develop-amd64 . + docker buildx build --no-cache --platform linux/arm64 -f $(Build.SourcesDirectory)/docker/Dockerfile.aarch64 -t yacreaderlibraryserver:develop-arm64 . + docker manifest create yacreaderlibraryserver:develop \ + --amend yacreaderlibraryserver:develop-amd64 \ + --amend yacreaderlibraryserver:develop-arm64 + docker manifest inspect yacreaderlibraryserver:develop + docker save yacreaderlibraryserver:develop -o $(Build.ArtifactStagingDirectory)/multiarch.tar displayName: 'Build and Push Multi-Platform Docker Image' # @@ -416,6 +417,11 @@ jobs: VERSION="$(cat common/yacreader_global.h | grep '#define VERSION "' | tr -d '#define VERSION' | tr -d '"' )" echo "##vso[task.setvariable variable=VERSION]$VERSION" displayName: 'Version' + - script: | + docker tag yacreaderlibraryserver:develop yacreaderlibraryserver:latest + docker tag yacreaderlibraryserver:develop yacreaderlibraryserver:$(VERSION) + docker rmi yacreaderlibraryserver:develop || true + displayName: 'Tag Image as Latest and Versioned and Remove Develop Tag' - task: Docker@2 displayName: 'Push Multi-Platform Docker Image' inputs: From 2e42afb3ac27a5dead5806212b52e404493abeb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 20:02:50 +0200 Subject: [PATCH 07/17] Fix paths --- azure-pipelines.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4977b811..0ff63da6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -318,8 +318,9 @@ jobs: displayName: 'Set up Docker Buildx' - script: | - docker buildx build --no-cache --platform linux/amd64 -f $(Build.SourcesDirectory)/docker/Dockerfile -t yacreaderlibraryserver:develop-amd64 . - docker buildx build --no-cache --platform linux/arm64 -f $(Build.SourcesDirectory)/docker/Dockerfile.aarch64 -t yacreaderlibraryserver:develop-arm64 . + cd $(Build.SourcesDirectory)/docker/ + docker buildx build --no-cache --platform linux/amd64 -f Dockerfile -t yacreaderlibraryserver:develop-amd64 . + docker buildx build --no-cache --platform linux/arm64 -f Dockerfile.aarch64 -t yacreaderlibraryserver:develop-arm64 . docker manifest create yacreaderlibraryserver:develop \ --amend yacreaderlibraryserver:develop-amd64 \ --amend yacreaderlibraryserver:develop-arm64 From 0874802b3fa1051253ef8cab2b9b039e3ddbe05d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 20:29:50 +0200 Subject: [PATCH 08/17] Don't use buildx unless it's needed to speed things up --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0ff63da6..d5fe95e4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -319,7 +319,7 @@ jobs: - script: | cd $(Build.SourcesDirectory)/docker/ - docker buildx build --no-cache --platform linux/amd64 -f Dockerfile -t yacreaderlibraryserver:develop-amd64 . + docker build --no-cache --platform linux/amd64 -f Dockerfile -t yacreaderlibraryserver:develop-amd64 . docker buildx build --no-cache --platform linux/arm64 -f Dockerfile.aarch64 -t yacreaderlibraryserver:develop-arm64 . docker manifest create yacreaderlibraryserver:develop \ --amend yacreaderlibraryserver:develop-amd64 \ From cb7fa6a3e8246f14f683c603584f6cdd555a0d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 21:47:24 +0200 Subject: [PATCH 09/17] Increase timeout, buildx is slow --- azure-pipelines.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d5fe95e4..a656659d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -307,6 +307,7 @@ jobs: # - job: BuildDockerImages + timeoutInMinutes: 120 displayName: 'Build Docker Images' dependsOn: CodeFormatValidation pool: @@ -326,7 +327,7 @@ jobs: --amend yacreaderlibraryserver:develop-arm64 docker manifest inspect yacreaderlibraryserver:develop docker save yacreaderlibraryserver:develop -o $(Build.ArtifactStagingDirectory)/multiarch.tar - displayName: 'Build and Push Multi-Platform Docker Image' + displayName: 'Build Multi-Platform Docker Image' # # Dev builds publication From 8c368cdd2a3495450ebe9ee0a2d9f2c6868d131a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 21 Sep 2024 23:53:46 +0200 Subject: [PATCH 10/17] Increase timeout again --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a656659d..c7aa13a3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -307,7 +307,7 @@ jobs: # - job: BuildDockerImages - timeoutInMinutes: 120 + timeoutInMinutes: 360 displayName: 'Build Docker Images' dependsOn: CodeFormatValidation pool: From e18796154bad83562814737008327d136ce26219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 22 Sep 2024 09:10:33 +0200 Subject: [PATCH 11/17] Parallelize docker images build and explicitly load the arm64 image (buildx) --- azure-pipelines.yml | 75 ++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c7aa13a3..531cf499 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -303,31 +303,48 @@ jobs: vc_vars: 'vcvars32.bat' # -# Docker +# Docker amd64 # -- job: BuildDockerImages +- job: BuildAmd64Image timeoutInMinutes: 360 - displayName: 'Build Docker Images' - dependsOn: CodeFormatValidation + displayName: 'Build amd64 Docker Image' pool: vmImage: 'ubuntu-latest' steps: - - script: | - docker buildx create --use - docker buildx inspect --bootstrap - displayName: 'Set up Docker Buildx' - - script: | cd $(Build.SourcesDirectory)/docker/ docker build --no-cache --platform linux/amd64 -f Dockerfile -t yacreaderlibraryserver:develop-amd64 . - docker buildx build --no-cache --platform linux/arm64 -f Dockerfile.aarch64 -t yacreaderlibraryserver:develop-arm64 . - docker manifest create yacreaderlibraryserver:develop \ - --amend yacreaderlibraryserver:develop-amd64 \ - --amend yacreaderlibraryserver:develop-arm64 - docker manifest inspect yacreaderlibraryserver:develop - docker save yacreaderlibraryserver:develop -o $(Build.ArtifactStagingDirectory)/multiarch.tar - displayName: 'Build Multi-Platform Docker Image' + docker save yacreaderlibraryserver:develop-amd64 -o $(Build.ArtifactStagingDirectory)/amd64.tar + displayName: 'Build amd64 Image and Save as Artifact' + - task: PublishPipelineArtifact@1 + inputs: + targetPath: $(Build.ArtifactStagingDirectory)/amd64.tar + artifactName: amd64_image + displayName: 'Publish amd64 Image Artifact' + +# +# Docker arm64 +# + +- job: BuildArm64Image + timeoutInMinutes: 360 + displayName: 'Build arm64 Docker Image' + pool: + vmImage: 'ubuntu-latest' + steps: + - script: | + cd $(Build.SourcesDirectory)/docker/ + docker buildx create --use + docker buildx inspect --bootstrap + docker buildx build --no-cache --platform linux/arm64 -f Dockerfile.aarch64 -t yacreaderlibraryserver:develop-arm64 --load . + docker save yacreaderlibraryserver:develop-arm64 -o $(Build.ArtifactStagingDirectory)/arm64.tar + displayName: 'Build arm64 Image and Save as Artifact' + - task: PublishPipelineArtifact@1 + inputs: + targetPath: $(Build.ArtifactStagingDirectory)/arm64.tar + artifactName: arm64_image + displayName: 'Publish arm64 Image Artifact' # # Dev builds publication @@ -356,7 +373,14 @@ jobs: buildType: 'current' targetPath: $(Build.ArtifactStagingDirectory) - script: | - docker load -i $(Build.ArtifactStagingDirectory)/multiarch.tar + docker load -i $(Build.ArtifactStagingDirectory)/amd64.tar + docker load -i $(Build.ArtifactStagingDirectory)/arm64.tar + docker manifest create yacreaderlibraryserver:develop \ + --amend yacreaderlibraryserver:develop-amd64 \ + --amend yacreaderlibraryserver:develop-arm64 + docker manifest inspect yacreaderlibraryserver:develop + rm $(Build.ArtifactStagingDirectory)/amd64.tar + rm $(Build.ArtifactStagingDirectory)/arm64.tar displayName: 'Load Multi-Platform Docker Image' - script: | find $(Build.ArtifactStagingDirectory) -name '*.*' -exec cp {} $(Build.ArtifactStagingDirectory) \; @@ -410,8 +434,16 @@ jobs: buildType: 'current' targetPath: $(Build.ArtifactStagingDirectory) - script: | - docker load -i $(Build.ArtifactStagingDirectory)/multiarch.tar - displayName: 'Load Multi-Platform Docker Image' + docker load -i $(Build.ArtifactStagingDirectory)/amd64.tar + docker load -i $(Build.ArtifactStagingDirectory)/arm64.tar + docker manifest create yacreaderlibraryserver:latest \ + --amend yacreaderlibraryserver:develop-amd64 \ + --amend yacreaderlibraryserver:develop-arm64 + docker manifest inspect yacreaderlibraryserver:latest + rm $(Build.ArtifactStagingDirectory)/amd64.tar + rm $(Build.ArtifactStagingDirectory)/arm64.tar + docker tag yacreaderlibraryserver:latest yacreaderlibraryserver:$(VERSION) + displayName: 'Load docker image with latest and VERSION tags' - script: | find $(Build.ArtifactStagingDirectory) -name '*.*' -exec cp {} $(Build.ArtifactStagingDirectory) \; displayName: 'flatten artifact staging directory' @@ -419,11 +451,6 @@ jobs: VERSION="$(cat common/yacreader_global.h | grep '#define VERSION "' | tr -d '#define VERSION' | tr -d '"' )" echo "##vso[task.setvariable variable=VERSION]$VERSION" displayName: 'Version' - - script: | - docker tag yacreaderlibraryserver:develop yacreaderlibraryserver:latest - docker tag yacreaderlibraryserver:develop yacreaderlibraryserver:$(VERSION) - docker rmi yacreaderlibraryserver:develop || true - displayName: 'Tag Image as Latest and Versioned and Remove Develop Tag' - task: Docker@2 displayName: 'Push Multi-Platform Docker Image' inputs: From c81c3310a158e425825d9f33ff78061906045333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 22 Sep 2024 09:13:47 +0200 Subject: [PATCH 12/17] Wait for code format validation --- azure-pipelines.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 531cf499..ebcdf742 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -306,8 +306,9 @@ jobs: # Docker amd64 # -- job: BuildAmd64Image +- job: Docker_Amd64_Image timeoutInMinutes: 360 + dependsOn: CodeFormatValidation displayName: 'Build amd64 Docker Image' pool: vmImage: 'ubuntu-latest' @@ -327,8 +328,9 @@ jobs: # Docker arm64 # -- job: BuildArm64Image +- job: Docker_Amd64_Image timeoutInMinutes: 360 + dependsOn: CodeFormatValidation displayName: 'Build arm64 Docker Image' pool: vmImage: 'ubuntu-latest' From fc853630d8e8240901ded7b87ec0a5f7e71994ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 22 Sep 2024 09:39:12 +0200 Subject: [PATCH 13/17] Fix job name --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ebcdf742..56b761bf 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -328,7 +328,7 @@ jobs: # Docker arm64 # -- job: Docker_Amd64_Image +- job: Docker_Arm64_Image timeoutInMinutes: 360 dependsOn: CodeFormatValidation displayName: 'Build arm64 Docker Image' From f0c142b3007d2b840ac4e7656c7d1103b273bb90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 22 Sep 2024 15:20:30 +0200 Subject: [PATCH 14/17] Build and install 7z.so, loading Codecs/Rar.so is broken Also use multistage builds to have smaller images --- common/yacreader_global.cpp | 14 ------------- docker/Dockerfile | 42 ++++++++++++++++++++++++------------- docker/Dockerfile.aarch64 | 41 +++++++++++++++++++++++++++--------- 3 files changed, 59 insertions(+), 38 deletions(-) diff --git a/common/yacreader_global.cpp b/common/yacreader_global.cpp index 47c0ba39..f4da42d9 100644 --- a/common/yacreader_global.cpp +++ b/common/yacreader_global.cpp @@ -129,22 +129,8 @@ QLibrary *YACReader::load7zLibrary() auto yacreader7zPath = QString(LIBDIR) + "/yacreader/7z.so"; QFileInfo sevenzlibrary(yacreader7zPath); if (sevenzlibrary.exists()) { - auto rarPath = QString(LIBDIR) + "/yacreader/Codecs/Rar.so"; - QFileInfo rarCodec(rarPath); - if (rarCodec.exists()) { - QLibrary *rarLibrary = new QLibrary(rarPath); - rarLibrary->load(); - } - return new QLibrary(yacreader7zPath); } else { - auto rarPath = QString(LIBDIR) + "/7zip/Codecs/Rar.so"; - QFileInfo rarCodec(rarPath); - if (rarCodec.exists()) { - QLibrary *rarLibrary = new QLibrary(rarPath); - rarLibrary->load(); - } - return new QLibrary(QString(LIBDIR) + "/7zip/7z.so"); } #else diff --git a/docker/Dockerfile b/docker/Dockerfile index 43fb3517..59f53081 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:noble +FROM ghcr.io/linuxserver/baseimage-ubuntu:noble AS builder # version, it can be a TAG or a branch ARG YACR_VERSION="develop" @@ -73,20 +73,34 @@ RUN cd /src/git/YACReaderLibraryServer && \ make && \ make install -# clean up -RUN cd / && \ - apt-get clean && \ - apt-get purge -y build-essential g++ gcc git make qmake6 qtchooser unzip wget && \ - apt-get -y autoremove && \ +# install 7z.so with RAR support +RUN echo "Building and installing 7z.so with RAR support..." && \ + cd "/src/git/compressed_archive/lib7zip/CPP/7zip/Bundles/Format7zF" && \ + make -f makefile.gcc && \ + mkdir -p /app/lib/7zip && \ + cp ./_o/7z.so /app/lib/7zip + +# Stage 2: Runtime stage +FROM ghcr.io/linuxserver/baseimage-ubuntu:noble + +# env variables +ENV APPNAME="YACReaderLibraryServer" +ENV HOME="/config" +LABEL maintainer="luisangelsm" + +# Copy the built application from the builder stage +COPY --from=builder /app /app + +# runtime packages +RUN apt-get update && \ apt-get install -y --no-install-recommends \ - dos2unix \ - libqt6core5compat6-dev \ - libpoppler-qt6-dev && \ - rm -rf \ - /src \ - /tmp/* \ - /var/cache/apt \ - /var/lib/apt/lists/* + libqt6core5compat6 \ + libpoppler-qt6-3t64 \ + qt6-image-formats-plugins \ + libqt6network6t64 \ + libqt6sql6-sqlite && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # set ENV ENV LC_ALL="en_US.UTF-8" \ diff --git a/docker/Dockerfile.aarch64 b/docker/Dockerfile.aarch64 index f7bc72ee..9647fb82 100644 --- a/docker/Dockerfile.aarch64 +++ b/docker/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble +FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble AS builder # version, it can be a TAG or a branch ARG YACR_VERSION="develop" @@ -65,17 +65,38 @@ RUN cd /src/git/YACReaderLibraryServer && \ qmake PREFIX=/app CONFIG+="7zip server_standalone" YACReaderLibraryServer.pro && \ make && \ make install + +# install 7z.so with RAR support +RUN echo "Building and installing 7z.so with RAR support..." && \ + cd "/src/git/compressed_archive/lib7zip/CPP/7zip/Bundles/Format7zF" && \ + make -f makefile.gcc && \ + mkdir -p /app/lib/7zip && \ + cp ./_o/7z.so /app/lib/7zip -# clean up -RUN cd / && \ +FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble + +# env variables +ENV APPNAME="YACReaderLibraryServer" +ENV HOME="/config" +LABEL maintainer="luisangelsm" + +# Copy the built application from the builder stage +COPY --from=builder /app /app + +# runtime packages +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + libqt5core5a \ + libqt5network5 \ + libqt5script5 \ + libqt5sql5-sqlite \ + libqt5sql5 \ + libqt5svg5 \ + libsqlite3-0 \ + libpoppler-qt5-1 \ + qt5-image-formats-plugins && \ apt-get clean && \ - apt-get purge -y build-essential g++ git make qt5-qmake unzip wget && \ - apt-get -y autoremove && \ - rm -rf \ - /src \ - /tmp/* \ - /var/cache/apt \ - /var/lib/apt/lists/* + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # set ENV ENV LC_ALL="en_US.UTF-8" \ From 60413d9c9fe3dd0656b71f9948052967743c0cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 22 Sep 2024 17:22:30 +0200 Subject: [PATCH 15/17] Update the script for building in Ubuntu 24.04 It builds now 7z.so with rar support, so no codecs are needed at runtime, YACReader no longer loads separated codecs. --- build_scripts/ubuntu_22.04/README.md | 2 +- build_scripts/ubuntu_24.04/README.md | 2 +- build_scripts/ubuntu_24.04/build.sh | 13 ++++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/build_scripts/ubuntu_22.04/README.md b/build_scripts/ubuntu_22.04/README.md index 4b29e1e4..b65a6d7a 100644 --- a/build_scripts/ubuntu_22.04/README.md +++ b/build_scripts/ubuntu_22.04/README.md @@ -1,6 +1,6 @@ ## Ubuntu 22.04 build script You can use `build.sh` to build YACReader from scratch in `Ubuntu 22.04` with `7zip` (including `RAR5` support) and `poppler` (pdf). This build uses Qt5. -The script will create a folder next to it where all the downloads and building will happen, it will also install all the required dependencies. 7zip 23.01 is not available in `Ubuntu 22.04` so the script builds it and installs 7z.so in /usr/lib/7zip/. Once the scrip finishes succesfully `YACReader`, `YACReaderLibrary` and `YACReaderLibraryServer` should be installed in your system. +The script will create a folder next to it where all the downloads and building will happen, it will also install all the required dependencies. The installs 7z.so in /usr/lib/7zip/. Once the scrip finishes succesfully `YACReader`, `YACReaderLibrary` and `YACReaderLibraryServer` should be installed in your system. WARNIG: This doesn't work with the latest release (9.14), there is a bug and some of the code is still looking for the old p7zip library, you need to build from develop, to do so run: `build.sh develop`. \ No newline at end of file diff --git a/build_scripts/ubuntu_24.04/README.md b/build_scripts/ubuntu_24.04/README.md index 58d87385..6d39e7da 100644 --- a/build_scripts/ubuntu_24.04/README.md +++ b/build_scripts/ubuntu_24.04/README.md @@ -1,6 +1,6 @@ ## Ubuntu 24.04 build script You can use `build.sh` to build YACReader from scratch in `Ubuntu 24.04` with `7zip` (including `RAR5` support) and `poppler` (pdf). This build uses `Qt6`. -The script will create a folder next to it where all the downloads and building will happen, it will also install all the required dependencies. Once the scrip finishes succesfully `YACReader`, `YACReaderLibrary` and `YACReaderLibraryServer` should be installed in your system. +The script will create a folder next to it where all the downloads and building will happen, it will also install all the required dependencies. The script builds it and installs 7z.so in /usr/lib/7zip/. Once the scrip finishes succesfully `YACReader`, `YACReaderLibrary` and `YACReaderLibraryServer` should be installed in your system. WARNIG: This doesn't work with the latest release (9.14), there is a bug and some of the code is still looking for the old p7zip library, you need to build from develop, to do so run: `build.sh develop`. \ No newline at end of file diff --git a/build_scripts/ubuntu_24.04/build.sh b/build_scripts/ubuntu_24.04/build.sh index ecb1b9fc..979b5330 100644 --- a/build_scripts/ubuntu_24.04/build.sh +++ b/build_scripts/ubuntu_24.04/build.sh @@ -40,7 +40,7 @@ mkdir -p "$COMPRESSED_ARCHIVE_DIR" # Step 2: Install required packages echo "Updating package list and installing required packages..." sudo apt-get update -sudo apt-get install -y qtchooser qt6-tools-dev qt6-base-dev-tools qmake6 qmake6-bin qt6-base-dev qt6-multimedia-dev qt6-tools-dev-tools libgl-dev qt6-l10n-tools libqt6opengl6-dev qt6-declarative-dev libqt6svg6-dev libqt6core5compat6-dev qml6-module-qt5compat-graphicaleffects qt6-5compat-dev libpoppler-qt6-dev qt6-image-formats-plugins qml6-module-qtquick-controls qml6-module-qtquick-layouts qml6-module-qtqml-workerscript qml6-module-qtquick-templates p7zip-full p7zip-rar git build-essential +sudo apt-get install -y qtchooser qt6-tools-dev qt6-base-dev-tools qmake6 qmake6-bin qt6-base-dev qt6-multimedia-dev qt6-tools-dev-tools libgl-dev qt6-l10n-tools libqt6opengl6-dev qt6-declarative-dev libqt6svg6-dev libqt6core5compat6-dev qml6-module-qt5compat-graphicaleffects qt6-5compat-dev libpoppler-qt6-dev qt6-image-formats-plugins qml6-module-qtquick-controls qml6-module-qtquick-layouts qml6-module-qtqml-workerscript qml6-module-qtquick-templates 7zip-full 7zip-rar git build-essential # Step 3: Download YACReader source code if [ "$1" == "develop" ]; then @@ -60,14 +60,21 @@ wget "$SEVENZIP_URL" -O "$SEVENZIP_ARCHIVE" echo "Extracting 7zip source code..." 7z x "$SEVENZIP_ARCHIVE" -o"$SEVENZIP_DIR" -# Step 5: Build YACReader +# Step 5: Build and install 7z.so with RAR support +echo "Building and installing 7z.so with RAR support..." +cd "$SEVENZIP_DIR/CPP/7zip/Bundles/Format7zF" +make -f makefile.gcc +sudo mkdir -p /usr/lib/7zip +sudo cp ./_o/7z.so /usr/lib/7zip + +# Step 6: Build YACReader echo "Building YACReader..." cd "$YACREADER_DIR" export DEFINES_VAR=DEFINES+\=\"BUILD_NUMBER=\\\\\\\"CUSTOM_BUILD\\\\\\\"\" qmake6 CONFIG+="7zip" $DEFINES_VAR make -# Step 6: Install YACReader +# Step 7: Install YACReader echo "Installing YACReader..." sudo make install From 522410c635370cc155fb16169933ffb6e8000ed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 22 Sep 2024 17:25:05 +0200 Subject: [PATCH 16/17] Add a README for the Docker images --- docker/README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 docker/README.md diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 00000000..46c8d96d --- /dev/null +++ b/docker/README.md @@ -0,0 +1,16 @@ +These are the official Dockerfile for YACReaderLibraryServer. + +By default the images will be created using the `develop` branch from YACReader's Github repository. You can pass the `YACR_VESRION` argument with a tag to build one of the relase versions, e.g. `ARG YACR_VERSION=9.15.0` + +This is an example about how to run YACReaderLibraryServer: + +``` +docker run -d --name YACReaderLibraryServer -e PUID=99 -e PGID=100 -e TZ=Europe/Madrid -p 9999:8080 -v 'C:\Users\my_user_name\Desktop\:/config' -v 'C:\Users\my_user_name\Desktop\MyLibrary:/comics' --restart unless-stopped yacreaderlibraryserver:latest +``` + +`-p` sets the port that needs to be used in the iOS and Android apps, in the example above the port would be 9999. This port connects with the port 8080 in the container, and that would be the port that the server will be seeing. +`-v 'path:/comics'` sets the path to the folder containing your library in your real machine. This path is connected to the /comics volumen, and this is the path that the server will seen in the container. + +`root.tar.gz` contains some default configuration + `s6-overlay` files that take care of keeping `YACReaderLibraryServer` running (and starting it automatically when the docker image starts), the files inside need to be carefully edited in linux to avoid having trobules at runtime, since I normally develop on Windows the `tar.gz` keeps the integrity of the files. + +The images are pushed to `yacreader/yacreaderlibraryserver` in Docker Hub. The tags `:develop`, `:latest` and the version number are available. `:develop` will contain an image with the latest dev build, while `:latest` will point to the latest stable release. From 612f80f9129f1e05a61fb733a613e50afb4f45c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 22 Sep 2024 17:25:44 +0200 Subject: [PATCH 17/17] Some cleaning in the Dockerfile files --- docker/Dockerfile | 5 ++--- docker/Dockerfile.aarch64 | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 59f53081..12c5ed4b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,7 +9,7 @@ ENV APPNAME="YACReaderLibraryServer" ENV HOME="/config" LABEL maintainer="luisangelsm" -# install build & runtime packages +# install build packages RUN \ apt-get update && \ apt-get install -y --no-install-recommends \ @@ -65,9 +65,8 @@ RUN cd /src/git/compressed_archive && \ wget "https://github.com/YACReader/yacreader-7z-deps/blob/main/7z2301-src.7z?raw=true" -O /src/git/compressed_archive/7z2301-src.7z && \ 7z x /src/git/compressed_archive/7z2301-src.7z -o/src/git/compressed_archive/lib7zip -# build yacrederlibraryserver +# build yacreaderlibraryserver RUN cd /src/git/YACReaderLibraryServer && \ - # qtchooser -list-versions && \ qmake6 PREFIX=/app CONFIG+="7zip server_standalone" YACReaderLibraryServer.pro && \ qmake6 -v && \ make && \ diff --git a/docker/Dockerfile.aarch64 b/docker/Dockerfile.aarch64 index 9647fb82..faf2c430 100644 --- a/docker/Dockerfile.aarch64 +++ b/docker/Dockerfile.aarch64 @@ -9,7 +9,7 @@ ENV APPNAME="YACReaderLibraryServer" ENV HOME="/config" LABEL maintainer="luisangelsm" -# install build & runtime packages +# install build packages RUN \ apt-get update && \ apt-get install -y --no-install-recommends \