反编译 Trino Dockerfile

文章目录

反编译 Trino Dockerfile

反编译Dockerfile命令

shell 复制代码
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm ghcr.io/laniksj/dfimage"
dfimage trinodb/trino:432

反编译后Dockerfile内容

shell 复制代码
Unable to find image 'ghcr.io/laniksj/dfimage:latest' locally
latest: Pulling from laniksj/dfimage
4abcf2066143: Pull complete 
a9cd27405e55: Pull complete 
905b6ecc7ae9: Pull complete 
2799eae2f25b: Pull complete 
eddc0410333a: Pull complete 
e79eaf700b78: Pull complete 
c9222d5c8c6f: Pull complete 
fb2a4c462b18: Pull complete 
Digest: sha256:a9b7704ff2a927649d872c05b179ada8bb1503387f58f125bfbf0a155749f05e
Status: Downloaded newer image for ghcr.io/laniksj/dfimage:latest
FROM <base image not found locally>
ADD file:139424fc60c0a17394da68faf4af3a17c9e959b6a1ce74c5b53ffc959145a63c in /
RUN /bin/sh -c mv -f /etc/yum.repos.d/ubi.repo /tmp || :
ADD file:ecc29a1455ca1b7c82018555e16e2e802135974523df6748e431f8707e759ddd in /tmp/tls-ca-bundle.pem
ADD multi:eed63f5f84efa377cb20d8bc2a3294d6aeffff59ee5380d49f1903b9673516dd in /etc/yum.repos.d/
LABEL maintainer="Red Hat, Inc."
LABEL com.redhat.component="ubi9-minimal-container"       name="ubi9-minimal"       version="9.2"
LABEL com.redhat.license_terms="https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI"
LABEL summary="Provides the latest release of the minimal Red Hat Universal Base Image 9."
LABEL description="The Universal Base Image Minimal is a stripped down image that uses microdnf as a package manager. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly."
LABEL io.k8s.display-name="Red Hat Universal Base Image 9 Minimal"
LABEL io.openshift.expose-services=""
LABEL io.openshift.tags="minimal rhel9"
ENV container oci
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["/bin/bash"]
RUN /bin/sh -c rm -rf /var/log/*
ADD file:d4e564939c7991d70e1c5392b02502c604ec36a1612a39fc922b8bb32a567932 in /root/buildinfo/content_manifests/ubi9-minimal-container-9.2-750.1697625013.json
ADD file:7aa78ccab5aa351a2b340ceba6ac1dad0988268ffec2b6ff113734e516c775f9 in /root/buildinfo/Dockerfile-ubi9-minimal-9.2-750.1697625013
LABEL "release"="750.1697625013" "distribution-scope"="public" "vendor"="Red Hat, Inc." "build-date"="2023-10-18T11:30:28" "architecture"="x86_64" "vcs-type"="git" "vcs-ref"="7ef59505f75bf0c11c8d3addefebee5ceaaf4c41" "io.k8s.description"="The Universal Base Image Minimal is a stripped down image that uses microdnf as a package manager. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly." "url"="https://access.redhat.com/containers/#/registry.access.redhat.com/ubi9-minimal/images/9.2-750.1697625013"
RUN /bin/sh -c rm -f '/etc/yum.repos.d/odcs-2460177-f3ccb.repo' '/etc/yum.repos.d/gitweb-a7836.repo'
RUN /bin/sh -c rm -f /tmp/tls-ca-bundle.pem
RUN /bin/sh -c mv -fZ /tmp/ubi.repo /etc/yum.repos.d/ubi.repo || :
RUN ARG JDK_VERSION
RUN ENV JAVA_HOME=/usr/lib/jvm/jdk-21.0.1
RUN ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/jdk-21.0.1/bin
RUN COPY /usr/lib/jvm/jdk-21.0.1 /usr/lib/jvm/jdk-21.0.1 # buildkit
RUN RUN |1 JDK_VERSION=21.0.1 /bin/sh -c set -xeu \
    &&     microdnf update -y \
    &&     microdnf install -y tar less python3 shadow-utils \
    &&     update-alternatives --install /usr/bin/python python /usr/bin/python3 1 \
    &&     groupadd trino --gid 1000 \
    &&     useradd trino --uid 1000 --gid 1000 --create-home \
    &&     mkdir -p /usr/lib/trino /data/trino \
    &&     chown -R "trino:trino" /usr/lib/trino /data/trino # buildkit
RUN ARG TRINO_VERSION
RUN COPY trino-cli-432-executable.jar /usr/bin/trino # buildkit
RUN COPY trino-server-432 /usr/lib/trino # buildkit
RUN COPY default/etc /etc/trino # buildkit
RUN COPY /libjvmkill.so /usr/lib/trino/bin # buildkit
RUN EXPOSE map[8080/tcp:{}]
RUN USER trino:trino
RUN CMD ["/usr/lib/trino/bin/run-trino"]
RUN HEALTHCHECK &{["CMD-SHELL" "/usr/lib/trino/bin/health-check"] "10s" "5s" "10s" '\x00'}

获取 Trino 启动脚本

shell 复制代码
# 下载 trino helm
helm repo add trino https://trinodb.github.io/charts/
helm pull trino/trino --version 0.19.0

# 部署一个demo trino on k8s集群,获取官方run-trino脚本
# Chart.yaml 上级目录下执行
helm install example-trino-cluster trino/trino 

# 根据反编译Dockerfile内容 'RUN CMD ["/usr/lib/trino/bin/run-trino"]' 登录pod查看 /usr/lib/trino/bin/run-trino内容
# 登录 pod
kubectl exec -it example-trino-cluster-coordinator-77dbb597dd-sn2x4 -- bash
cat /usr/lib/trino/bin/run-trino

# 从pod 拷贝 libjvmkill.so 到宿主机
# kubectl cp example-trino-cluster-coordinator-77dbb597dd-wszvm:/usr/lib/trino/bin/libjvmkill.so ./libjvmkill.so

# 卸载
# helm uninstall example-trino-cluster 
shell 复制代码
# cat /usr/lib/trino/bin/run-trino

#!/bin/bash

set -xeuo pipefail

launcher_opts=(--etc-dir /etc/trino)
if ! grep -s -q 'node.id' /etc/trino/node.properties; then
    launcher_opts+=("-Dnode.id=${HOSTNAME}")
fi

exec /usr/lib/trino/bin/launcher run "${launcher_opts[@]}" "$@"
shell 复制代码
# cat /usr/lib/trino/bin/health-check 

#!/bin/bash

set -euo pipefail

function get_property() {
    grep "^$1=" "$2" | cut -d'=' -f2
}

scheme=http
port=8080

config=/etc/trino/config.properties
# prefer to use http even if https is enabled
if [ "$(get_property 'http-server.http.enabled' "$config")" == "false" ]; then
    scheme=https
    port=$(get_property http-server.https.port "$config")
else
    port=$(get_property http-server.http.port "$config")
fi

endpoint="$scheme://localhost:$port/v1/info"

# add --insecure to disable certificate verification in curl, in case a self-signed certificate is being used
if ! info=$(curl --fail --silent --show-error --insecure "$endpoint"); then
    echo >&2 "Server is not responding to requests"
    exit 1
fi

if ! grep -q '"starting":\s*false' <<<"$info" >/dev/null; then
    echo >&2 "Server is starting"
    exit 1
fi

卸载

shell 复制代码
# 卸载
helm uninstall example-trino-cluster 
相关推荐
进击的小小学生15 分钟前
2024年第45周ETF周报
大数据·人工智能
青云交32 分钟前
大数据新视界 -- 大数据大厂之 Impala 性能优化:数据加载策略如何决定分析速度(上)(15/30)
大数据·impala·数据加载策略·分析速度·全量加载·增量加载·优化技巧
数据猿1 小时前
【金猿案例展】科技日报——大数据科技资讯服务平台
大数据·科技
yohoo菜鸟2 小时前
kubernetes简单入门实战
云原生·容器·kubernetes
Matrix703 小时前
HBase理论_HBase架构组件介绍
大数据·数据库·hbase
SeaTunnel4 小时前
我手搓了个“自动生成标书”的开源大模型工具
大数据
狂奔solar5 小时前
分享个好玩的,在k8s上部署web版macos
前端·macos·kubernetes
小_太_阳6 小时前
hadoop_yarn详解
大数据·hadoop·yarn
Lyqfor6 小时前
云原生学习
java·分布式·学习·阿里云·云原生
Data-Miner6 小时前
大数据湖项目建设方案(100页WORD)
大数据·big data