diff options
| author | Mister_X <MisterX2000@users.noreply.github.com> | 2025-04-06 02:56:14 +0200 |
|---|---|---|
| committer | Mister_X <MisterX2000@users.noreply.github.com> | 2025-04-06 02:56:14 +0200 |
| commit | 632536c6f576ef6fb79c74046e3d0189cc83125e (patch) | |
| tree | 4649d4427f7d51e95016ca0d7e074b13079d3af3 | |
| parent | e5f24bd6ccd0bd915652ac8ca354141ef80ce8d4 (diff) | |
fix alpine image
| -rw-r--r-- | .github/workflows/ant-build-release.yaml | 5 | ||||
| -rw-r--r-- | .github/workflows/build-docker-image.yaml | 4 | ||||
| -rw-r--r-- | docker/Dockerfile | 3 | ||||
| -rw-r--r-- | docker/Dockerfile.alpine | 56 |
4 files changed, 35 insertions, 33 deletions
diff --git a/.github/workflows/ant-build-release.yaml b/.github/workflows/ant-build-release.yaml index 8d0d8c7f9..de61e6f80 100644 --- a/.github/workflows/ant-build-release.yaml +++ b/.github/workflows/ant-build-release.yaml @@ -2,8 +2,6 @@ name: Build Executable on: push: - branches: # ONLY FOR TESTING - - "**" tags: - "v*.*.*" - "Release_*" @@ -18,7 +16,8 @@ jobs: build: strategy: matrix: - os: [macos-latest, ubuntu-latest, windows-latest] + #os: [macos-latest, ubuntu-latest, windows-latest] + os: [ubuntu-latest] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/build-docker-image.yaml b/.github/workflows/build-docker-image.yaml index 30e79b1d4..6016fca59 100644 --- a/.github/workflows/build-docker-image.yaml +++ b/.github/workflows/build-docker-image.yaml @@ -23,8 +23,8 @@ jobs: include: - tag: "" # Default Dockerfile platforms: linux/amd64,linux/arm64 - # - tag: alpine - # platforms: linux/amd64,linux/arm64 + - tag: alpine + platforms: linux/amd64,linux/arm64 runs-on: ubuntu-latest steps: diff --git a/docker/Dockerfile b/docker/Dockerfile index ffb07f3fb..ca201b1f7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,7 +6,7 @@ # run with # docker run -d --name yacy -p 8090:8090 -p 8443:8443 -v yacy_data:/opt/yacy_search_server/DATA --log-opt max-size=200m --log-opt max-file=2 yacy/yacy_search_server:latest -## build +## builder image FROM eclipse-temurin:21-jdk AS builder RUN apt-get update && apt-get install -y --no-install-recommends \ ant \ @@ -20,6 +20,7 @@ COPY . /opt/yacy_search_server/ RUN ant compile -f /opt/yacy_search_server/build.xml # Set initial admin password: "yacy" (encoded with custom yacy md5 function net.yacy.cora.order.Digest.encodeMD5Hex()) +# Intially enable HTTPS: this is the most secure option for remote administrator authentication RUN sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a0987a4aba1ec46d63c" /opt/yacy_search_server/defaults/yacy.init && \ sed -i "/adminAccountForLocalhost=/c\adminAccountForLocalhost=false" /opt/yacy_search_server/defaults/yacy.init && \ sed -i "/server.https=false/c\server.https=true" /opt/yacy_search_server/defaults/yacy.init diff --git a/docker/Dockerfile.alpine b/docker/Dockerfile.alpine index 9e83f2685..de8011195 100644 --- a/docker/Dockerfile.alpine +++ b/docker/Dockerfile.alpine @@ -1,13 +1,35 @@ # Build a docker image from latest YaCy sources on Alpine Linux # with wkhtmltopdf for PDF generation and Java 21 -FROM surnet/alpine-wkhtmltopdf:3.21.2-0.12.6-full as wkhtmltopdf -FROM eclipse-temurin:21-alpine-3.21 -# trace java version -RUN java -version +## builder image +FROM eclipse-temurin:21-jdk-alpine-3.21 AS builder + +# Install needed packages not in base image +RUN apk add --no-cache curl git apache-ant + +# set current working dir & copy sources +WORKDIR /opt +COPY . /opt/yacy_search_server/ + +RUN ant compile -f /opt/yacy_search_server/build.xml + +# Set initial admin password: "yacy" (encoded with custom yacy md5 function net.yacy.cora.order.Digest.encodeMD5Hex()) +# Intially enable HTTPS: this is the most secure option for remote administrator authentication +# Create user and group yacy: this user will be used to run YaCy main process +# Set ownership of yacy install directory to yacy user/group +RUN sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a0987a4aba1ec46d63c" /opt/yacy_search_server/defaults/yacy.init && \ + sed -i "/adminAccountForLocalhost=/c\adminAccountForLocalhost=false" /opt/yacy_search_server/defaults/yacy.init && \ + sed -i "/server.https=false/c\server.https=true" /opt/yacy_search_server/defaults/yacy.init + +## build final image +FROM surnet/alpine-wkhtmltopdf:3.21.2-0.12.6-full AS wkhtmltopdf +FROM eclipse-temurin:21-jre-alpine-3.21 AS app -# Install dependencies for wkhtmltopdf RUN apk add --no-cache \ + imagemagick \ + xvfb \ + ghostscript \ + # Install dependencies for wkhtmltopdf libstdc++ \ libx11 \ libxrender \ @@ -35,29 +57,9 @@ COPY --from=wkhtmltopdf /bin/wkhtmltopdf /bin/wkhtmltopdf COPY --from=wkhtmltopdf /bin/wkhtmltoimage /bin/wkhtmltoimage COPY --from=wkhtmltopdf /lib/libwkhtmltox* /lib/ -# Install needed packages not in base image -RUN apk add --no-cache curl git imagemagick xvfb ghostscript apache-ant - -# set current working dir & copy sources +RUN addgroup yacy && adduser -S -G yacy -H -D yacy WORKDIR /opt -COPY . /opt/yacy_search_server/ - -RUN ant compile -f /opt/yacy_search_server/build.xml && \ - rm -rf /opt/yacy_search_server/.git && \ - rm -rf /opt/ant - -RUN \ - # Set initial admin password: "yacy" (encoded with custom yacy md5 function net.yacy.cora.order.Digest.encodeMD5Hex()) - sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a0987a4aba1ec46d63c" /opt/yacy_search_server/defaults/yacy.init && \ - sed -i "/adminAccountForLocalhost=/c\adminAccountForLocalhost=false" /opt/yacy_search_server/defaults/yacy.init && \ - # Intially enable HTTPS: this is the most secure option for remote administrator authentication - sed -i "/server.https=false/c\server.https=true" /opt/yacy_search_server/defaults/yacy.init && \ - # Create user and group yacy: this user will be used to run YaCy main process - addgroup yacy && adduser -S -G yacy -H -D yacy && \ - # Set ownership of yacy install directory to yacy user/group - chown yacy:yacy -R /opt/yacy_search_server - -RUN rm -rf /opt/yacy_search_server/DATA +COPY --chown=yacy:yacy --from=builder /opt/yacy_search_server /opt/yacy_search_server # Expose HTTP and HTTPS default ports EXPOSE 8090 8443 |
