fix build pipeline issue with Kibana

- qemu-aarch64: /usr/share/kibana/bin/../node/bin/node: PT_GNU_PROPERTY too large
- Kibana's packaged node is the culprit, replacing it fixes build issues with x64 qemu building docker arm64 images
This commit is contained in:
t3chn0m4g3 2024-09-06 14:45:51 +00:00
parent a948337a2f
commit acf09bc160

View file

@ -1,28 +1,31 @@
FROM ubuntu:22.04 FROM node:20.13.1-alpine3.20
# #
# VARS # VARS
ENV KB_VER=8.14.2 ENV KB_VER=8.14.2
#
# Include dist # Include dist
COPY dist/ /root/dist/ COPY dist/ /root/dist/
# #
RUN apt-get update -y && \ RUN apk -U --no-cache add \
apt-get install -y \
aria2 \ aria2 \
curl && \ curl \
gcompat && \
# #
# Determine arch, get and install packages # Determine arch, get and install packages
ARCH=$(arch) && \ ARCH=$(arch) && \
if [ "$ARCH" = "x86_64" ]; then KB_ARCH="amd64"; fi && \ if [ "$ARCH" = "x86_64" ]; then KB_ARCH="x86_64"; fi && \
if [ "$ARCH" = "aarch64" ]; then KB_ARCH="arm64"; fi && \ if [ "$ARCH" = "aarch64" ]; then KB_ARCH="aarch64"; fi && \
echo "$ARCH" && \ echo "$ARCH" && \
cd /root/dist/ && \ cd /root/dist/ && \
aria2c -s 16 -x 16 https://artifacts.elastic.co/downloads/kibana/kibana-$KB_VER-$KB_ARCH.deb && \ aria2c -s 16 -x 16 https://artifacts.elastic.co/downloads/kibana/kibana-$KB_VER-linux-$KB_ARCH.tar.gz && \
dpkg -i kibana-$KB_VER-$KB_ARCH.deb && \ mkdir -p /usr/share/kibana && \
tar xvfz kibana-$KB_VER-linux-$KB_ARCH.tar.gz --strip-components=1 -C /usr/share/kibana/ && \
#
# Kibana's bundled node does not work in build pipeline
rm /usr/share/kibana/node/bin/node && \
ln -s /usr/local/bin/node /usr/share/kibana/node/bin/node && \
# #
# Setup user, groups and configs # Setup user, groups and configs
mkdir -p /usr/share/kibana/config \
/usr/share/kibana/data && \
cp /etc/kibana/kibana.yml /usr/share/kibana/config && \
sed -i 's/#server.basePath: ""/server.basePath: "\/kibana"/' /usr/share/kibana/config/kibana.yml && \ sed -i 's/#server.basePath: ""/server.basePath: "\/kibana"/' /usr/share/kibana/config/kibana.yml && \
sed -i 's/#server.host: "localhost"/server.host: "0.0.0.0"/' /usr/share/kibana/config/kibana.yml && \ sed -i 's/#server.host: "localhost"/server.host: "0.0.0.0"/' /usr/share/kibana/config/kibana.yml && \
sed -i 's/#elasticsearch.hosts: \["http:\/\/localhost:9200"\]/elasticsearch.hosts: \["http:\/\/elasticsearch:9200"\]/' /usr/share/kibana/config/kibana.yml && \ sed -i 's/#elasticsearch.hosts: \["http:\/\/localhost:9200"\]/elasticsearch.hosts: \["http:\/\/elasticsearch:9200"\]/' /usr/share/kibana/config/kibana.yml && \
@ -34,19 +37,16 @@ RUN apt-get update -y && \
echo "kibana.autocompleteTerminateAfter: 1000000" >> /usr/share/kibana/config/kibana.yml && \ echo "kibana.autocompleteTerminateAfter: 1000000" >> /usr/share/kibana/config/kibana.yml && \
rm -rf /usr/share/kibana/optimize/bundles/* && \ rm -rf /usr/share/kibana/optimize/bundles/* && \
/usr/share/kibana/bin/kibana --optimize --allow-root && \ /usr/share/kibana/bin/kibana --optimize --allow-root && \
groupmod -g 2000 kibana && \ addgroup -g 2000 kibana && \
usermod -u 2000 kibana && \ adduser -S -H -s /bin/ash -u 2000 -D -g 2000 kibana && \
chown -R root:kibana /etc/kibana && \ chown -R kibana:kibana /usr/share/kibana/data && \
chown -R kibana:kibana /usr/share/kibana/data \
/run/kibana \
/var/log/kibana \
/var/lib/kibana && \
chmod 755 -R /usr/share/kibana/config && \ chmod 755 -R /usr/share/kibana/config && \
# #
# Clean up # Clean up
apt-get purge aria2 -y && \ apk del --purge aria2 && \
apt-get autoremove -y --purge && \ rm -rf /root/* && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /root/.cache /root/* rm -rf /tmp/* && \
rm -rf /var/cache/apk/*
# #
# Healthcheck # Healthcheck
HEALTHCHECK --retries=10 CMD curl -s -XGET 'http://127.0.0.1:5601' HEALTHCHECK --retries=10 CMD curl -s -XGET 'http://127.0.0.1:5601'