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 /docker | |
| parent | e5f24bd6ccd0bd915652ac8ca354141ef80ce8d4 (diff) | |
fix alpine image
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/Dockerfile | 3 | ||||
| -rw-r--r-- | docker/Dockerfile.alpine | 56 |
2 files changed, 31 insertions, 28 deletions
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 |
