Merge pull request #553 from frankenstein91/archLinuxDocker
Arch linux docker using GraalVMpull/556/head
commit
382e0450d9
@ -0,0 +1,78 @@
|
||||
FROM archlinux:latest
|
||||
# update the system and clean up
|
||||
RUN pacman -Syu --noconfirm && pacman -Scc --noconfirm
|
||||
RUN pacman -Sy java-runtime-common --noconfirm && pacman -Scc --noconfirm
|
||||
# download latest version of graalvm and move it to /lib/jvm/java-{javaversion}-graalvm
|
||||
RUN bash <(curl -sL https://get.graalvm.org/jdk) --no-progress && \
|
||||
JAVAVERSION=$(ls ./ | grep graalvm | cut -d'-' -f3 | sed 's/java//g') && \
|
||||
mv ./graalvm-ce-java$JAVAVERSION-$(ls ./ | grep graalvm | cut -d'-' -f4) /lib/jvm/java-$JAVAVERSION-graalvm && \
|
||||
archlinux-java set java-$JAVAVERSION-graalvm
|
||||
# update the path variable
|
||||
ENV PATH="/usr/lib/jvm/default/bin:${PATH}"
|
||||
# set the JAVA_HOME variable
|
||||
ENV JAVA_HOME="/usr/lib/jvm/default"
|
||||
WORKDIR /opt
|
||||
RUN curl "https://downloads.apache.org/ant/source/apache-ant-1.10.12-src.tar.gz" --output ant-src.tar.gz && \
|
||||
tar -xzf ant-src.tar.gz && \
|
||||
rm ant-src.tar.gz && \
|
||||
mv apache-ant-* ant-src && \
|
||||
cd ant-src && \
|
||||
mkdir /opt/ant && \
|
||||
sh build.sh -f fetch.xml -Ddest=optional && \
|
||||
sh build.sh -Ddist.dir=/opt/ant dist && \
|
||||
cd .. && \
|
||||
rm -rf ant-src
|
||||
# set the ANT_HOME variable
|
||||
ENV ANT_HOME="/opt/ant"
|
||||
# set the PATH variable
|
||||
ENV PATH="/opt/ant/bin:${PATH}"
|
||||
RUN ant -f /opt/ant/fetch.xml -Ddest=system
|
||||
# install the latest version dependencies of Yacy (copied from the official Dockerfile)
|
||||
RUN pacman -Sy imagemagick ruby qt5-tools qt5-doc gperf python xorg-server-xvfb ghostscript git qt5-svg qt5-xmlpatterns base-devel qt5-location qt5-sensors qt5-webchannel libwebp libxslt libxcomposite gst-plugins-base hyphen hyphen-en hyphen-de woff2 cmake --noconfirm && \
|
||||
pacman -Scc --noconfirm
|
||||
RUN useradd --no-create-home --shell=/bin/false build && \
|
||||
usermod -L build
|
||||
USER build
|
||||
WORKDIR /tmp
|
||||
# buid package for qt5-webkit from AUR
|
||||
RUN git clone https://aur.archlinux.org/qt5-webkit.git && \
|
||||
cd qt5-webkit && \
|
||||
MAKEFLAGS="-j$(nproc)" makepkg --noconfirm && \
|
||||
cd ..
|
||||
USER root
|
||||
# install the package
|
||||
RUN pacman -U --noconfirm /tmp/qt5-webkit/qt5-webkit*.pkg.tar.zst && \
|
||||
rm -rf /tmp/qt5-webkit
|
||||
USER build
|
||||
# build package for wkhtmltopdf from AUR
|
||||
RUN git clone https://aur.archlinux.org/wkhtmltopdf.git && \
|
||||
cd wkhtmltopdf && \
|
||||
MAKEFLAGS="-j$(nproc)" makepkg --noconfirm --skippgpcheck && \
|
||||
cd ..
|
||||
USER root
|
||||
# install the package
|
||||
RUN pacman -U --noconfirm /tmp/wkhtmltopdf/wkhtmltopdf*.pkg.tar.zst && \
|
||||
rm -rf /tmp/wkhtmltopdf
|
||||
WORKDIR /opt
|
||||
# download the latest version of yacy
|
||||
RUN curl "https://codeload.github.com/yacy/yacy_search_server/zip/refs/heads/master" --output yacy.zip && \
|
||||
pacman -S unzip --noconfirm && \
|
||||
pacman -Scc --noconfirm && \
|
||||
unzip yacy.zip && \
|
||||
rm yacy.zip && \
|
||||
mv yacy_search_server-master yacy && \
|
||||
cd yacy && \
|
||||
ant compile -f build.xml && \
|
||||
rm -rf /opt/yacy/.github
|
||||
# Set initial admin password: "yacy" (encoded with custom yacy md5 function net.yacy.cora.order.Digest.encodeMD5Hex())
|
||||
RUN sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a0987a4aba1ec46d63c" /opt/yacy/defaults/yacy.init && \
|
||||
sed -i "/adminAccountForLocalhost=/c\adminAccountForLocalhost=false" /opt/yacy/defaults/yacy.init && \
|
||||
sed -i "/server.https=false/c\server.https=true" /opt/yacy/defaults/yacy.init
|
||||
# add the yacy user
|
||||
RUN useradd --no-create-home --system yacy && \
|
||||
usermod -L yacy && \
|
||||
chown -R yacy:yacy /opt/yacy
|
||||
EXPOSE 8090 8443
|
||||
VOLUME ["/opt/yacy/DATA"]
|
||||
USER yacy
|
||||
CMD ["/bin/sh","/opt/yacy/startYACY.sh","-f"]
|
Loading…
Reference in new issue